画像にいくつかの黒い領域で構成される輪郭がいくつかあります。これらの黒い領域に直接隣接するのは、私の輪郭に属さない明るい領域です。これらの明るい領域を黒い領域に追加して、OpenCv で輪郭を拡張したいと考えています。
輪郭を拡張する便利な方法はありますか? で作成したグラデーション画像から強度の変化を見てcv::Sobel
、勾配が再び変化するまで拡張することを考えました。つまり、ピクセルの強度は、画像の黒でも明るい領域にも戻りません。
ありがとう!
例の画像を次に示します。最初の画像は生の画像、2 番目の画像は Canny と findContours を使用して抽出された輪郭、最後の画像は同じ領域のソーベル勾配強度画像を示しています。最初の画像の明るい境界を輪郭に含めたいと思います。
更新: 今、私は Sobelgradients でいくつかの形態学的操作を使用し、それらの周りに輪郭を追加しました (下の画像を参照)。次のステップは、隣接する紫と赤の等高線のペアを見つけることですが、直接隣接する等高線を実際に検索する必要があるのは、処理時間の無駄のように思えます。より良いアイデアはありますか?
更新 2: 今のところ私の解決策は、(紫の) 輪郭の周りの境界ボックスでモーフィングされたグラデーション (赤) の輪郭を検索し、正しい向きとサイズのものを選択することです。これは、図 3 のように、モルフォロジー演算によって「上昇」と「下降」の勾配領域が閉じられる勾配等高線では機能します。しかし、上の画像よりも明るい領域が広い場合には、依然として悪い解決策です。どんなアイデアでも大歓迎です、ありがとう!