4

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

在此处输入图像描述

所以请有人可以使用简单的代码示例来解释这一点。

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

在此处输入图像描述

所以请善意地解释一下。

4

1 回答 1

5

你必须使用事实,每个正方形的红色分量等于 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);
于 2012-08-11T07:01:35.200 回答