【问题标题】:How to identify contour which are not directly separated from each other?如何识别不直接相互分离的轮廓?
【发布时间】:2012-08-11 06:23:51
【问题描述】:

请有人解释一下如何识别彼此不完全分开的方形轮廓。例如,我需要确定下图中的正方形数量以及它们边缘的 x,y 坐标。我尝试通过this 问题,但它对我不起作用。

所以请有人用简单的代码示例解释一下。

这是我可以生成的图像,请您解释一下如何识别该图像中的上述方块。

所以请您解释一下。

【问题讨论】:

    标签: image-processing opencv javacv


    【解决方案1】:

    你必须使用事实,每个正方形的红色分量等于 255,并做阈值。这是我所做的:

    1. 进行红色分割:

    2. 做扩张(去除孔洞):

    3. (可选)检查每个轮廓是否为正方形。

    代码:

    Mat src = imread("input.png"), red;
    extractChannel(src, red, 2);
    
    threshold(red, red, 254, 255, THRESH_BINARY);
    
    Mat element = getStructuringElement(MORPH_RECT, Size( 2, 2 ), Point( 1, 1 ));
    dilate(red, red, element);
    

    【讨论】:

    • Hay 非常感谢您的快速回复。你能告诉我这些方块是否和其他线条有相同的颜色,我怎么能提取这些方块?请好心解释一下。
    • 我不明白你的问题。
    • 我的意思是,如果整个图像只有黑色线条,我怎么能识别这些方块?
    • 线条不是正方形。你在说什么?
    • 我已经通过上传示例图片更新了问题。在那种图像中,我如何识别那些方块?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2012-07-15
    • 2021-08-21
    • 2011-08-27
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    相关资源
    最近更新 更多