前言

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

一、图像滤波与增强

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

图像内核是一个小矩阵,在Photoshop或Gimp中找到的效果都可以实现,例如模糊,锐化,轮廓或浮雕。它们还用于机器学习中的“特征提取”,这是一种用于确定图像最重要部分的技术。在这种情况下,该过程更普遍地称为“卷积”,调用filter 2d算子配合不同卷积核实现图像滤波和增强的程序如下: 在前面板选择不同的卷积核可以实现不同的效果:

不同卷积核效果如下:

1.模糊(blur)

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

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

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

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

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

7.分身(identity)就是原图

二、图像灰度处理

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

程序结果如下:

我们可以看到程序中使用了calHist用以绘制图片通道直方图,并以波形图显示出来;calHist函数参数具体如下:

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

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

程序结果如下:

三、阈值处理与设定

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

程序结果如下:

threshold算子参数分析:

四、二值化处理

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

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

五、边缘提取

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

程序实现效果如下:

六、角点检测

1.使用cornerMinEigenVal算子

角点检测程序如下:

程序结果如下:

2.使用cornerHarris算子

角点检测程序如下:

程序结果如下:

七、源码下载

链接:https://pan.baidu.com/s/1Ua00IwcLGFoFtXAWKDGW_w 提取码:8888

总结

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

 

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

  1. 手把手教你使用LabVIEW人工智能视觉工具包快速实现图像读取与采集(含源码)

    目录 前言 一.工具包位置 二.图像采集与色彩空间转换 1.文件读写 2.实现图片读取 3.使用算子cvtColor实现颜色空间转换 三.从摄像头采集图像 1.Camera类 2.属性节点 3.实现摄 ...

  2. 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码

    前言 今天和大家一起分享如何使用LabVIEW调用pb模型实现物体识别,本博客中使用的智能工具包可到主页置顶博客LabVIEW AI视觉工具包(非NI Vision)下载与安装教程中下载 一.物体识别 ...

  3. 【YOLOv5】手把手教你使用LabVIEW ONNX Runtime部署 TensorRT加速,实现YOLOv5实时物体识别(含源码)

    前言 上一篇博客给大家介绍了LabVIEW开放神经网络交互工具包[ONNX],今天我们就一起来看一下如何使用LabVIEW开放神经网络交互工具包实现TensorRT加速YOLOv5. 以下是YOLOv ...

  4. 【YOLOv5】LabVIEW+YOLOv5快速实现实时物体识别(Object Detection)含源码

    前言 前面我们给大家介绍了基于LabVIEW+YOLOv3/YOLOv4的物体识别(对象检测),今天接着上次的内容再来看看YOLOv5.本次主要是和大家分享使用LabVIEW快速实现yolov5的物体 ...

  5. 手把手教你使用LabVIEW OpenCV DNN实现手写数字识别(含源码)

    @ 目录 前言 一.OpenCV DNN模块 1.OpenCV DNN简介 2.LabVIEW中DNN模块函数 二.TensorFlow pb文件的生成和调用 1.TensorFlow2 Keras模 ...

  6. 手把手教你使用LabVIEW实现Mask R-CNN图像实例分割

    前言 前面给大家介绍了使用LabVIEW工具包实现图像分类,目标检测,今天我们来看一下如何使用LabVIEW实现Mask R-CNN图像实例分割. 一.什么是图像实例分割? 图像实例分割(Instan ...

  7. 手把手教你使用LabVIEW OpenCV dnn实现图像分类(含源码)

    @ 目录 前言 一.什么是图像分类? 1.图像分类的概念 2.MobileNet简介 二.使用python实现图像分类(py_to_py_ssd_mobilenet.py) 1.获取预训练模型 2.使 ...

  8. 自学Linux Shell9.4-基于Red Hat系统工具包存在两种方式之二:源码包

    点击返回 自学Linux命令行与Shell脚本之路 9.4-基于Red Hat系统工具包存在两种方式之二:源码包 本节主要介绍基于Red Had的系统(测试系统centos) 1. 工具包存在两种方式 ...

  9. 小草手把手教你LabVIEW串口仪器控制—安装使用仪器现有驱动

    声明:很多仪器是没有驱动的.所以,具体问题具体分析.另外声明:所谓的驱动,也就是封装好的底层的串口通信程序,也是程序而已,只不过别人帮你做成了子 VI,让自己容易用.所以:不要弄混淆了概念.国外的很多 ...

随机推荐

  1. 21条最佳实践,全面保障 GitHub 使用安全

    GitHub 是开发人员工作流程中不可或缺的一部分.无论你去哪个企业或开发团队,GitHub 都以某种形式存在.它被超过8300万开发人员,400万个组织和托管超过2亿个存储库使用.GitHub 是世 ...

  2. Azure Devops(十四) 使用Azure的私有Nuget仓库

    哈喽大家好,最近因为工作的原因没有时间写文章,断更了俩月,今天我们开始继续研究Azure上的功能. 今天我们开始研究一下Azure的制品仓库,在之前的流水线的相关文章中,我们都使用到了制品仓库用来保存 ...

  3. 2022-07-25 第四组 java之抽象、接口

    目录 一.抽象类 1.概念 2.抽象类以及抽象方法格式定义 3.抽象类总结规定 二.接口 1.什么是接口 2.接口的定义 3.接口特性 4.抽象类和接口的区别 5.继承抽象类和实现接口的异同 6.规则 ...

  4. python jinjia2 高级

    高层api class jinja2.Environment([options]) Enviroment:环境,是Jinjia2的核心组件,它包含重要的共享变量,如配置.过滤器.测试.全局变量.模板加 ...

  5. 20220722-Java中this关键字

    this关键字知识总结 学习资源:B站韩顺平老师Java入门教学 代码示例1 public class This01 { public static void main(String[] args) ...

  6. 手动注入bean到spring容器

    ApplicationContext applicationContext = SpringContextUtils.getApplicationContext(); //将applicationCo ...

  7. 还在用Alpine作为你Docker的Python开发基础镜像?其实Ubuntu更好一点

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_173 一般情况下,当你想为你的Python开发环境选择一个基础镜像时,大多数人都会选择Alpine,为什么?因为它太小了,仅仅只有 ...

  8. google nexus5x 刷机抓包逆向环境配置(二)

    本文仅供学习交流使用,如侵立删! google nexus5x 刷入永久TWEP和Magisk(面具root) 操作环境 nexus5x kaliLinux win10 准备 下载链接:https:/ ...

  9. 5. MGR管理维护 | 深入浅出MGR

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 切换主节点 2. 切换单主/多主模式 3. 添加新节点 4. 删除节点 5. 异常退出的节点重新加回 6. 重 ...

  10. 深入理解Spring事件机制(一):广播器与监听器的初始化

    前言 Spring 从 3.x 开始支持事件机制.在 Spring 的事件机制中,我们可以令一个事件类继承 ApplicationEvent 类,然后将实现了 ApplicationListener ...