计算封闭区域中非黑色像素数的最佳算法是什么?

时间:2016-09-26 12:47:00

标签: c# algorithm

计算封闭区域中非黑色像素数量的最佳c#算法是什么? 我有这样的图像。我在红色按钮位置单击鼠标。我想知道黑色像素(在这个例子中是白色像素)在封闭区域中是多少(不应该计算方形和矩形)?

pixel count

2 个答案:

答案 0 :(得分:1)

您需要使用emguCV / C#在图像中找到轮廓(blob)。该库提供的功能,可以让您获得图像的所有轮廓:

var contours = YourImage.FindContours(CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE, RETR_TYPE.CV_RETR_EXTERNAL);

然后,您需要构建自己的算法来检查鼠标坐标所在的轮廓。样本图像只有三个轮廓(方形,矩形和其余部分)。您将需要迭代这三个并根据它们的面积,形状等测试您的鼠标坐标。

答案 1 :(得分:1)

您需要的是与填充算法非常相似,唯一的区别是不是更改像素颜色而是计算它们。搜索填充算法的实现。