Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何检测图像中有缺陷的LED_Matlab_Opencv_Image Processing_Computer Vision - Fatal编程技术网

Matlab 如何检测图像中有缺陷的LED

Matlab 如何检测图像中有缺陷的LED,matlab,opencv,image-processing,computer-vision,Matlab,Opencv,Image Processing,Computer Vision,在我的项目中,我在一块具有相同图案的板上有一组led。当看到led使用相机时,在图像中发现了白色的孔。(第一个附件) (1) 。我的第一个要求是我需要找到没有工作和不工作的led。当我使用opencv进行斑点检测时,这一点要容易得多。我成功地找到了 (2) 。我的第二个要求是我需要画绿色的工作led,而不是红色的工作led。我在这里很挣扎 如果所有的led都正常工作,我可以很容易地得到所有斑点的中心,并使用该中心点,我被画成绿色。但问题是,如果任何一个led都不工作。我没有在图像中得到任何白洞。

在我的项目中,我在一块具有相同图案的板上有一组led。当看到led使用相机时,在图像中发现了白色的孔。(第一个附件)

(1) 。我的第一个要求是我需要找到没有工作和不工作的led。当我使用opencv进行斑点检测时,这一点要容易得多。我成功地找到了

(2) 。我的第二个要求是我需要画绿色的工作led,而不是红色的工作led。我在这里很挣扎

如果所有的led都正常工作,我可以很容易地得到所有斑点的中心,并使用该中心点,我被画成绿色。但问题是,如果任何一个led都不工作。我没有在图像中得到任何白洞。我没有在图像中得到任何斑点。我如何才能画出红色的不工作led

请找到下面的附件,它有助于理解我的问题。提前谢谢

输入图像

如果所有的led都能正常工作,我就这样画

一个led不工作。现在我需要识别那个不工作的led,我会像我的第四个附件一样将它画成红色。

如果LED的排列和比例是恒定的(如果这是一个制造的零件,那么可能应该是恒定的),难道你不能在所有LED都工作的情况下在测试图像上注册一个“参考”图像,然后发现斑点大小和形状的不匹配,这将表明设备出现故障吗?

正如Francesco在他的文章中所写,如果这些假设有效:

  • 如图所示,LED的尺寸是恒定的,并且是已知的
  • LED的布置是恒定且已知的
  • 工作LED亮灰色,不工作LED暗灰色 然后,正如Rethunk所建议的,您可以尝试一个简单的算法,如下所示:

  • 从你的形象开始 LED正在工作
  • 从该图像中获取所有绿色斑点的质心,称之为
    c\u i
  • 从该图像中获取所有绿色斑点的半径,称之为
    r\u i

  • 当您必须检查新图像时:对于每个
    c_i
    计算以
    c_i
    为中心且半径等于
    a_i*r_i
    (其中
    0