Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 具有与背景颜色相同字体的背景检测_Opencv_Image Processing_Detection_Feature Detection - Fatal编程技术网

Opencv 具有与背景颜色相同字体的背景检测

Opencv 具有与背景颜色相同字体的背景检测,opencv,image-processing,detection,feature-detection,Opencv,Image Processing,Detection,Feature Detection,我有如下图片(这是红色背景上的白色数字。这个数字里面有两条细细的红线) 我想接收以下图像(删除红色背景,但不要删除图中的两条红线) 我试着用OpenCV中的convexHull,但是,很明显,这种方法只适用于凸面图形。我觉得卷积在这方面可能有所帮助,但还没有真正的想法。建议:) 只是 Convxhull按名字说的做但有一个同伴 呵呵,它看起来像是圆的卷积,圆的直径略大于线的厚度(例如8个像素)! 因此,算法如下所示: 与直径略大于直线的圆卷积 厚度 规格化卷积,您对值感兴趣 大于0.95-

我有如下图片(这是红色背景上的白色数字。这个数字里面有两条细细的红线)

我想接收以下图像(删除红色背景,但不要删除图中的两条红线)

我试着用OpenCV中的convexHull,但是,很明显,这种方法只适用于凸面图形。我觉得卷积在这方面可能有所帮助,但还没有真正的想法。

建议:)

  • 只是

  • Convxhull按名字说的做但有一个同伴


呵呵,它看起来像是圆的卷积,圆的直径略大于线的厚度(例如8个像素)! 因此,算法如下所示:

  • 与直径略大于直线的圆卷积 厚度
  • 规格化卷积,您对值感兴趣 大于0.95-0.97
  • 对于卷积函数上的每个点 (值大于0.95-0.97)应将所有值归零 R=直径/2范围内的邻域

  • 扩张和侵蚀应适用于您的示例:

    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();
    
    输出:


    berak,从(0,0)点用黑色填充也将用黑色填充红线:)注意,这些红线与图左侧的背景没有任何像素分开。啊,好的。很抱歉完全倒过来了。我应该删除它吗?np,你可以把它留到历史上:)无论如何,谢谢你的时间!