3

画像内で最大の長方形を見つける必要がありますが、輪郭を見つけると影が輪郭の一部になります。

影を削除/最小化する方法の提案。

元の画像

ここに画像の説明を入力

輪郭のある画像

ここに画像の説明を入力

4

3 に答える 3

1

通常のOtsu ThresholdingではなくAdaptiveThresholdingを使用すると、OpenCV Java for Android で同じ問題を解決できました

于 2016-04-13T12:22:07.957 に答える
1

通常、最初に適応しきい値を使用して画像を 2 値化し、影を削除します。

例のソース

于 2015-07-22T11:24:33.787 に答える
0

Canny のようなエッジ検出器を使用できます。

cv::Mat image = cv::imread( "C:/Users/John/Documents/StackOverflow/t8keM.png" );
cv::Mat gray_image, dst, color_dst;

cvtColor( image, gray_image, CV_BGR2GRAY );
Canny( gray_image, dst, 50, 200, 3 );
cvtColor( dst, color_dst, CV_GRAY2BGR );

cv::imshow( "image", image );
cv::imshow( "canny", color_dst );

cv::waitKey();

結果: ここに画像の説明を入力

その後、 cv::findContours() を使って四角形を見つけることができます。

于 2015-07-25T13:45:03.047 に答える