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
Image processing 如何识别彼此不直接分离的轮廓?_Image Processing_Opencv_Javacv - Fatal编程技术网

Image processing 如何识别彼此不直接分离的轮廓?

Image processing 如何识别彼此不直接分离的轮廓?,image-processing,opencv,javacv,Image Processing,Opencv,Javacv,请有人解释一下如何识别彼此不完全分开的正方形轮廓。例如,我需要确定下图中的正方形数量及其边缘的x、y坐标。我试着把这个问题通读一遍,但对我来说不起作用 所以请有人用简单的代码示例解释一下 这是我能生成的图像,你能解释一下如何在这张图像中识别上面的方块吗 所以请善意地解释一下。您必须使用一个事实,即每个正方形的红色分量等于255,然后计算阈值。以下是我所做的: 执行红色分割: 进行扩容(清除孔洞): (可选)检查每个轮廓是否为正方形 代码: 非常感谢您的快速回复。你能告诉我,如果这些方块和

请有人解释一下如何识别彼此不完全分开的正方形轮廓。例如,我需要确定下图中的正方形数量及其边缘的x、y坐标。我试着把这个问题通读一遍,但对我来说不起作用

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

这是我能生成的图像,你能解释一下如何在这张图像中识别上面的方块吗


所以请善意地解释一下。

您必须使用一个事实,即每个正方形的红色分量等于255,然后计算阈值。以下是我所做的:

  • 执行红色分割:

  • 进行扩容(清除孔洞):

  • (可选)检查每个轮廓是否为正方形
  • 代码:


    非常感谢您的快速回复。你能告诉我,如果这些方块和其他线条有相同的颜色,我如何提取这些方块?请善意地解释一下。我不明白你的问题。我的意思是,如果整个图像只有黑色线条,我怎么能识别这些正方形?线条不是正方形。你在说什么?我通过上传样本图片更新了问题。在这种图像中,我如何识别这些正方形?
    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);