我的图像背景为实心,上面有三种类型的对象。这三个物体具有不同(但尺寸略有不同)和不同颜色。
例如,如果有一个40-60像素的组颜色为黑色,那么分组将放在A组中,如果有一个40-60像素的组为白色,那么分组将被放入B组如果有一个90-110像素的黑色组,那么分组将被放入C组。然后算法需要计算每组中的对象数。
我如何创建算法来执行此操作(最好使用python)?
提前致谢。
答案 0 :(得分:2)
您的问题的答案是Canny edge detector
。
你可以找到它的python实现here。
祝你好运!答案 1 :(得分:0)
一种有效的方法是首先根据颜色对图像进行二值化。 例如,在您的情况下,要检测对象A,您可以创建非白色的所有像素。然后你得到一个只有两种颜色(黑色和白色)的图像。 并且您可以使用连通分量检测来查找所有黑色像素组。如果组中的像素数大于40,则可以认为它是对象A. 您想查看我的matlab代码Detect-Gray-Square