一、前言

该文章是基于NI-VISION的视觉识别,需要安装好对应的扩展,我使用的版本如下:

🥝效果展示

📜注意:在本篇文章和代码中,识别的码型为 QR Code

🥝代码展示

前面板:

程序框图:

如果需要完整代码的可以在此下载:Labview机器视觉-USB摄像头识别二维码-完整程序

也可以三连该文章之后私聊我领取完整代码或者NI-VISION扩展组件!

🥝视频学习地址

二、代码详解

该项目的整体代码框图较为简单,但是部分vi函数还是有一些值得注意的地方:

🍍IMAQ ExtractSingleColorPlane VI


✨该vi的作用简单来说就是:提取图像的某一颜色平面

在展示效果中可以看到视频图像是黑白界面,没有任何彩色出现。这是因为在代码中调用了该函数,它默认提取图像的绿色平面

关于颜色平面,正如PS中的颜色通道是一个道理,在RGB色彩中有蓝色通道、红色通道和绿色通道

其次,每个通道都有不一样的效果:

1.红色通道:在此通道下,越白的地方说明图片红色像素越强,越黑的地方说明图片红色像素越弱;
2.绿色通道:越白的地方说明图片绿色像素越强,越黑的地方说明图片绿色像素越弱;
3.蓝色通道:越白的地方说明图片蓝色像素越强,越黑的地方说明图片蓝色像素越弱。

更多关于Photoshop通道原理的介绍参考该文章:Photoshop通道原理

重点在这

在选择任意一个原色通道时,会隐藏其他颜色的通道;在选择任意一个原色通道时,都是黑白色的,没有出现红、绿、蓝三种颜色,那是因为灰度模式更能便于查看当前通道的发光强度,ps默认用灰度模式显示通道。

我们使用该vi函数,就是为了让图像画面呈现出黑白色,这样更利于程序对二维码的识别

🍍IMAQ Read QR Code VI

QR Code Report QR Code Report 

🍍IMAQ Overlay Text VI


✨该vi函数的作用是在目标图像上实时添加(或者覆盖)文字

因此,我们便可以将二维码的解码数据添加到图像中

🍍IMAQ Overlay Multiple Lines 2 VI

✨该vi函数的作用是在图像上叠加多条线,如折线或多边形。 我们将获取到的二维码边框输入到该vi中,就可以在图像上显示出二维码的边界框:

注意输入的数据形式: