我有幾個輪廓由我的圖像中的幾個黑色區域組成。與這些黑色區域直接相鄰的是一些不屬於我的輪廓的較亮區域。我想將這些更亮的區域添加到我的黑色區域,並因此在OpenCv中擴展我的輪廓。
有沒有方便的方法來擴展輪廓?我考慮過從用cv::Sobel
創建的漸變圖像中查看亮度變化,並延伸至漸變再次變化,這意味着像素的強度將返回到圖像的黑色區域和明亮區域。在OpenCv中擴展輪廓
謝謝!
下面是示例圖像。第一張圖片顯示的是原始圖像,第二張提取的輪廓使用Canny & findContours,最後一張Sobel-Gradient強度圖像的同一區域。 我想要在Contour的第一個圖像中包含明亮的邊界。
更新:我現在已經使用了一些形態學操作上Sobelgradients並添加周圍的輪廓(見下圖)。下一步可能是找到相鄰的一對紅色輪廓,但看起來非常像浪費遊戲時間,實際上不得不搜索直接相鄰的輪廓。任何更好的想法?
更新2:我現在的解決辦法是尋找仿型梯度(紅色)輪廓圍繞我(紫色)的輪廓邊界框,並挑選一個正確方向&大小。這適用於梯形輪廓,其中形態操作關閉如圖3所示的「上升」和「下降」梯度區域。但對於上圖中點亮區域更寬的情況,這仍然是一個不好的解決方案。任何想法仍然非常感謝,謝謝!
請提供樣本圖片! –
好的,在我的問題中添加了一些圖片和說明。 – moatilliatta