【发布时间】:2013-09-07 13:14:13
【问题描述】:
我有如下图像(所以,这是红底白字。这个图里面有两条细红线)
我想收到下面的图片(去除红色背景,但不是图中的两条红线)
我正在尝试使用 OpenCV 的 convexHull,但显然这种方法仅适用于凸图。我觉得卷积在这里可能会有所帮助,但还没有真正的想法。
【问题讨论】:
标签: opencv image-processing detection feature-detection
我有如下图像(所以,这是红底白字。这个图里面有两条细红线)
我想收到下面的图片(去除红色背景,但不是图中的两条红线)
我正在尝试使用 OpenCV 的 convexHull,但显然这种方法仅适用于凸图。我觉得卷积在这里可能会有所帮助,但还没有真正的想法。
【问题讨论】:
标签: opencv image-processing detection feature-detection
Dilate 和 Erode 应该适用于您的示例:
Mat image = imread("image1.jpg");
int erosion_size = 5;
int dilation_size = 6;
int threshold_value = 200;
Mat mask;
cvtColor( image, mask, CV_BGR2GRAY );
//BINARY THRESHOLDING
threshold( mask, mask, threshold_value, 255, 0);
Mat erosion_element = getStructuringElement(MORPH_RECT, Size( 2*erosion_size + 1, 2*erosion_size+1 ), Point( erosion_size, erosion_size ) );
Mat dilation_element = getStructuringElement(MORPH_RECT, Size( 2*dilation_size + 1, 2*dilation_size+1 ), Point( dilation_size, dilation_size ) );
dilate(mask, mask, erosion_element);
erode(mask, mask, dilation_element);
Mat target;
image.copyTo(target, mask);
imshow("hello",target);
waitKey();
输出:
【讨论】:
建议::)
convexHull 名副其实,但有一个同伴convexitydefects
【讨论】:
嘿嘿,它看起来像是直径比线粗略大(例如 8 像素)的圆的卷积! 因此,算法将如下所示:
【讨论】: