我有一个图像,有一个坚实的背景和三种类型的对象。这三个对象具有不同的(但大小略有不同)和不同的颜色。
例如,如果存在40-60个颜色为黑色的像素组,该分组将被置于组A中,如果存在40-60个颜色为白色的像素组,该分组将被置于组B中,并且如果存在90-110个颜色为黑色的像素组,则该分组将被置于组C中,那么该算法将需要对每个组中的对象的数量进行计数。
我该如何创建一个算法来做到这一点(最好使用python)?
提前谢谢。
发布于 2013-07-07 20:58:27
你的问题的答案是Canny edge detector。
你可以找到它的python实现here。
祝好运!
发布于 2013-08-11 04:13:41
一种可行的方法是首先根据颜色对图像进行二值化。例如,在您的示例中,为了检测对象A,您将所有不是黑色的像素设置为白色。然后你得到一个只有两种颜色(黑色和白色)的图像。你可以使用连通分量检测来找到所有的黑色像素组。如果一组中的像素数大于40,您可以认为它是一个对象A。您想要查看我的matlab代码Detect-Gray-Square吗?
https://stackoverflow.com/questions/17512264
复制相似问题