2016-07-09 2 views
0

距離変換は、最も近い境界/輪郭/背景ピクセルからの各ピクセルの距離を提供します。私は最も近い距離を望んでいませんが、私は境界線/輪郭からピクセルの距離をすべての方向に平均的に測定したいと思います。この距離変換を計算するための提案があれば歓迎されます。そのような距離変換を計算するために利用可能な既存のアルゴリズムおよび/または効率的なC++コードがあれば、それも素晴らしいだろう。バイナリイメージの平均距離変換はどのようにして見つけられますか?

+0

OpenCV関数をチェックしましたか:distanceTransform、Matlab関数:bwdist in? – Rotem

答えて

0

輪郭のバイナリイメージがある場合、いくつかのウィンドウ内の各ピクセルの周りの境界ピクセルの数を計算することができます(たとえば、積分イメージまたはcv::blurを使用)。これは、あなたが望むようなものを与えるでしょう。

平均距離の距離変換を正規化すると組み合わせることができます。

+1

うーん..合理的な考えのように聞こえる。私はそれを試してみましょう。はい、私は輪郭のバイナリイメージを持っています。しかし、あなたのソリューションは輪郭からのウィンドウサイズよりも遠いピクセルのための適切な距離を生成することができません。 – Prakhar

0

"すべての方向の境界線/輪郭からピクセルの距離の平均値を求める"場合は、輪郭線を抽出する必要があり、パターン内のピクセルごとに平均値を計算する必要があります輪郭に属するピクセルとの距離。

「粗い」近似のヒューリスティックは、ソースポイント(パターンの端点でもよい)を使用して多くの距離マップを計算することです。パターン内の各ピクセルについて、距離の合計を計算します。距離地図。しかし、正確な測度を得るには、等高線に属するピクセルと同じ数の距離マップを計算する必要があります。しかし、近似値が「大丈夫」であれば、処理速度が向上します。

関連する問題