手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)

前言

今天我们一起来使用LabVIEW AI视觉工具包快速实现图像的滤波与增强;图像灰度处理;阈值处理与设定;二值化处理;边缘提取与特征提取等基本操作。工具包的安装与下载方法可见之前的两篇博客。

一、图像滤波与增强

有时候我们想要处理的图像中噪音太多,影响到我们的识别判断,我们就需要对图像进行模糊处理,使图像变得平滑。而LabVIEW AI视觉工具包提供给我们filter 2d算子可以对图像进行2D卷积,我们可以使用自定义的卷积核来对图像进行卷积操作。该算子输入输出如下所示:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第1张图片
图像内核是一个小矩阵,在Photoshop或Gimp中找到的效果都可以实现,例如模糊,锐化,轮廓或浮雕。它们还用于机器学习中的“特征提取”,这是一种用于确定图像最重要部分的技术。在这种情况下,该过程更普遍地称为“卷积”,调用filter 2d算子配合不同卷积核实现图像滤波和增强的程序如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第2张图片

在前面板选择不同的卷积核可以实现不同的效果:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第3张图片

不同卷积核效果如下:
1.模糊(blur)

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第4张图片

2.索贝尔(sobel),仅显示特定方向上相邻像素值的差异,从上往下,从暗处到亮处增强显示

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第5张图片

3.浮雕(emboss),通过强调像素的差在给定方向的Givens深度的错觉,从左上往右下,从暗处到亮处增强显示:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第6张图片

4.大纲(outline),一个轮廓内核(也称为“边缘”的内核)用于突出显示的像素值大的差异,轮廓的增强显示

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第7张图片

5.锐化(sharpen),该锐化内核强调在相邻的像素值的差异。这使图像看起来更生动

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第8张图片

6.拉普拉斯算子(laplacian operator),可以用于边缘检测,对于检测图像中的模糊也非常有用。

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第9张图片

7.分身(identity)就是原图

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第10张图片

二、图像灰度处理

之前我们说过,LabVIEW默认使用BGR读取图像,所以我们将图片转化为灰度图使用cvtColor算子,参数选择:BGR2GRAY,如下图所示:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第11张图片

程序结果如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第12张图片

我们可以看到程序中使用了calHist用以绘制图片通道直方图,并以波形图显示出来;calHist函数参数具体如下:
手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第13张图片

波形图显示控件:前面板右键-->Graph-->Waveform Graph;

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第14张图片

直接读取原图显示程序如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第15张图片

程序结果如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第16张图片

三、阈值处理与设定

如下程序通过设定阈值,实现将其他颜色全部过滤,只保留红蓝绿三种颜色:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第17张图片

程序结果如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第18张图片

threshold算子参数分析:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第19张图片

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第20张图片

四、二值化处理

将图片先转化为灰度图,再进行二值化,程序如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第21张图片

设置阈值和最大值,二值化之后的程序结果如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第22张图片

五、边缘提取

如下程序为使用findContours实现边缘提取:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第23张图片

程序实现效果如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第24张图片

六、角点检测

1.使用cornerMinEigenVal算子角点检测程序如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第25张图片

程序结果如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第26张图片
2.使用cornerHarris算子角点检测程序如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第27张图片

程序结果如下:

手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码)_第28张图片

七、源码下载链接:https://pan.baidu.com/s/1Ua00...

提取码:8888

总结

具体源码详细请见下载链接。
更多关于LabVIEW与人工智能技术,可添加技术交流群进一步探讨。
qq群号:705637299,请备注暗号:LabVIEW 机器学习

你可能感兴趣的:(手把手教你使用LabVIEW人工智能视觉工具包快速实现传统Opencv算子的调用(含源码))