电子说
之前我们介绍了MV-EM130M工业相机的实时图像获取方法,本文再结合labview的图像处理函数给出一种简单的图像处理VI。此处的图像处理包括对图像进行采样,找出与采样点相同的图像。为了找出角度放置的采样点,在查找的同时对图像进行了360°的翻转,这样可以找出图像上相同点。
由于软件的运行比较复杂,数据的采集又是实时的,要求处理速度比较快,所以要对其进行整体设计,合理安排控件的调用和执行顺序。本程序中采用了一个大循环,保持程序的持续运行。在内部再调用一个顺序结构来控制程序的执行顺序,这样可以确保程序按编程者的思路进行。
图像采集&整个程序流程图
读取了图像数据后,还要设置查找的像素。这里通过一个光标选择函数来实现。先用函数IMAQ Setup Learn Pattern 2来设置需要记录的各项,然后再用IMAQ Extract函数进行光标设置。这样就记录了此光标区域的图像数据。
设置查找像素
这里用一个条件结构来控制是否进入记录像素的程序,也就是当选择了要记录的像素后,才进入此分支程序。在这一分支程序中,又利用了一个顺序结构,这样提高了程序运行的效率。
复位记录按钮
当设置完以上要查找的像素后,就可以在需要的图片中查找此像素。为了查找有用的像素,在选择了“开始查找”后,要先读取上面标记的像素,再进行查找。此处程序的设计中,也是先运行一个条件结构,再运行顺序结构,按顺序执行程序。
读取选择的像素
当读取像素后,利用顺序结构在第二帧的图像中继续查找。在这一帧中放置了一个循环,并限制循环次数为4。此时先用一个IMAQ Rotate对图像进行翻转,每次翻转90°。这样就可以在循环4次时翻转一周,对图像上各个角度的像素进行查找。再把图像送到IMAQ Match Pattern 2函数,对其进行查找。通过此函数直接输出找到的像素信息的数组。为了对找到的信息进行处理,又用一个For循环对此数据和簇进行拆分。
程序编写完成后,要对系统进行软硬件的联机调试。这里把维视图像的MV-EM130M工业相机用网线和计算机连接,并在计算机上安装驱动程序。具体操作如下:
(1)运行本程序,在摄像头下放置好一块电路板,并对其设置好焦距和亮度。单击“开始采集”按钮,对其进行采集,并显示实时采集到的图像。
图像采集
(2)当采集完一次后,在界面上可以看到清晰的采集结果。此时我们用光标在需要进行识别的地方画出一个区域。此时光标变为绿色,表示用光标选中了要记录的像素。然后单击“学习标记”按钮,此光标消失,表示已经记录(学习)完成。这里选中的是电路板上字母C,让程序学习记录,并找出界面上所有的字母C。
设置学习区域
(3)记录学习完成后,就可以查找相同像素的点了。单击“开始查找”按钮后,程序开始在此图上查找记录的像素点,并以此像素点为标准,进行比对,找出相同的点。查找的过程中标出了各个点的坐标和编号。这里把标签类型设置为“A”,以Shift Invariant的方式查找,精度设置为700,最大数目设置为40。这样就可找出所有相同的元素。
查找结果
从图中可以看出,查找过程中,程序找出了所有字母C,并标注了它们的坐标和标签。此处的标签有些不是端正的,主要是由于在对图片进行翻转查找时,按相应的角度找到后直接就标记了。如标签A43(70,471)表示的意义如下:字母A是对程序进行查找前设置的标签类型。4表示此图片翻转到第4次找到的,即第4个角度。3表示是此角度下的第3个点。(70,471)表示当前查找到像素的中心坐标,即此目标的X=70,Y=471,坐标的值是从图像开始的左上角界面算起的。同时可以看到界面的下面显示了图片的属性,如图片大小、位数等。最后还可以看到一个“已查找到总个数”本框,此处显示的是8个目标。这和图上标注的一样,也和实际相符。
从以上的例程可以看出,使用可直接兼容labview驱动的工业相机在labview中做图像处理是较方便和高效的。
原文标题:LabVIEW如何图像识别与处理?一文教你视觉系统完整设计思路
文章出处:【微信公众号:电子发烧友网】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
全部0条评论
快来发表一下你的评论吧 !