当前位置: 首页 > news >正文

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

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位
🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

前言

今天我们一起来使用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 机器学习

相关文章:

  • Python小知识点
  • 目标检测 YOLOv5 - 最新版本v6.2模型在瑞芯微 Rockchip设备上运行的方案
  • Android 项目必备(三十)-->从 0 到 1 开发一个属于自己的 App
  • led灯珠型号及使用参数
  • MYSQL介绍——数据库的增删改及常用函数
  • 线性单功能PEG试剂甲氧基-聚乙二醇-丙烯酰胺,mPEG-Acrylamide,mPEG-ACA
  • 洛谷P3694
  • b站pink老师Echarts数据可视化笔记
  • 计算机三级数据库运行维护与优化(四)、合理使用索引、数据库存储结构和存取方法优化、完全规范化、索引的使用原则、、网络优化、监控内容、物化视图
  • HDMI/DVI____串行发送器
  • 深度操作系统 15.2——怀揣梦想,笃定前行
  • SAP PI PO 接口配置主体传播 RSXMB_CONFIG_PP_NEW
  • Python编程基础:函数的使用
  • 19.请介绍一下重绘和回流
  • Flink / Scala - AllWindowFunction 与 KeyedProcessFunction 处理 TopK 问题
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • ES6核心特性
  • IDEA 插件开发入门教程
  • javascript面向对象之创建对象
  • js对象的深浅拷贝
  • Mac转Windows的拯救指南
  • Vim 折腾记
  • Vue.js-Day01
  • windows-nginx-https-本地配置
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 回流、重绘及其优化
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 聊聊flink的BlobWriter
  • 全栈开发——Linux
  • 优化 Vue 项目编译文件大小
  • raise 与 raise ... from 的区别
  • ​2020 年大前端技术趋势解读
  • ​queue --- 一个同步的队列类​
  • #{}和${}的区别是什么 -- java面试
  • #Lua:Lua调用C++生成的DLL库
  • (pojstep1.1.2)2654(直叙式模拟)
  • (办公)springboot配置aop处理请求.
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (算法二)滑动窗口
  • (一) storm的集群安装与配置
  • (转)IOS中获取各种文件的目录路径的方法
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .apk文件,IIS不支持下载解决
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET Core 版本不支持的问题
  • .NET 发展历程
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .php文件都打不开,打不开php文件怎么办
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • [2010-8-30]