在我的项目中,我有一组带有相同图案的电路板。虽然看到led使用相机,但在图像中发现了白洞。(第一个附件)
(1)。我的第一个要求是我需要找到No的工作而不工作led。当我使用opencv使用blob检测时,这个要容易得多。我成功找到了。
(2)。我的第二个要求是我需要绘制绿色的工作led,而不是红色的led。我在这里挣扎。
如果所有的led都正常工作我很容易得到所有斑点的中心并使用那个中心点我被画成绿色。但问题是如果任何一个led不工作。我没有得到任何白洞在图像中。我没有在图像中得到任何斑点。我怎样画一个不工作的红色led。
请在下方找到有助于了解我的问题的附件。谢谢提前
输入图像
如果所有的led都在工作,我就这样画了
一个领导不工作。现在我需要确定不工作领导,我将用红色绘制它,就像我的第四个附件。
答案 0 :(得分:3)
如果LED排列和刻度是恒定的(可能应该是,如果这是制造的部件),你不能只是在测试图像中注册一个所有LED工作的“参考”,然后找到blob尺寸和形状不匹配,这表明设备出现故障?
答案 1 :(得分:0)
正如弗朗西斯科在他的answer中写道,如果这些假设是有效的:
然后,正如Rethunk所建议的那样,你可以尝试这样一个简单的算法:
c_i
r_i
c_i
,计算以c_i
为中心且半径等于a_i*r_i
的圆圈中包含的像素的直方图(其中0 < a_i <= 1
1}})。如果直方图中考虑的像素数的百分比p_i
的灰度级大于阈值t_i
,则绘制一个以c_i
为中心且半径为a_i*r_i
的绿色磁盘,否则,画一个红色的磁盘。通过一些实验查找a_i
,p_i
,t_i
的正确值。