手把手教你使用LabVIEW人工智能视觉工具包快速实现Harris角点检测(含源码)

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主

🍻本文由virobotics(仪酷智能)原创首发

🥳欢迎大家关注✌点赞👍收藏⭐留言📝

前言

Hello,大家好,我是virobotics(仪酷智能),一个深耕于LabVIEW和人工智能领域的开发工程师。

本文将带领大家一起在LabVIEW中实现Harris角点检测。


一、角点特征相关概念

1.1 特征定义

什么是特征呢?为什么一副图像的某个特定区域可以作为一个特征,而其他区域不能呢?粗略的讲,特征就是有意义的图像区域,该区域具有独特特征和易于识别性。因此角点及高密度区域都是很好的特征,而大量重复的模式或低密度区域(例如图像中的蓝色天空)则不是很好的特征。边缘可以将图像分为两个区域,因此也可以看做好的特征。斑点是与周围有很大差别的像素区域,也是有意义的特征。

1.2 图像的特征

图像特征要有区分性,容易被比较。一般认为角点,斑点等是较好的图像特征。 如下图所示,蓝色框中的区域是一个平面很难被找到和跟踪。无论向哪个方向移动蓝色框,都是一样的。对于黑色框中的区域,它是一个边缘。如果沿垂直方向移动,它会改变。但是如果沿水平方向移动就不会改变。而红色框中的角点,无论你向那个方向移动,得到的结果都不同,这说明它是唯一的。 所以,我们说角点是一个好的图像特征。

角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点在三维场景重建运动估计,目标跟踪、目标识别、图像配准与匹配等计算机视觉领域起着非常重要的作用。在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。那我们怎样找到这些角点呢?我们一起来看看

1.3 角点的定义

下图中E,F中的角我们通常称作角点(corner points),他们具有以下特征: • 轮廓之间的交点; • 对于同一场景,即使视角发生变化,通常具备稳定性质的特征; • 该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化;

二、环境搭建

2.1 部署本项目时所用环境

  • 操作系统:Windows10
  • python:3.6及以上
  • LabVIEW:2018及以上 64位版本
  • AI视觉工具包:techforce_lib_opencv_cpu-1.0.0.98.vip

2.2 LabVIEW工具包下载及安装

三、 程序实现Harris角点检测

3.1 原理

Harris角点检测的算法思想是:选取一个固定的窗口在图像上以任意方向的滑动,如果灰度都有较大的变化,那么就认为这个窗口内部存在角。如下图所示:

3.2 python实现Harris角点检测

python 复制代码
import cv2
import numpy as np 


img = cv2.imread('1.jpg') #读取图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#转换成灰度图像

# 输入图像必须是 float32
gray = np.float32(gray)

# 第三个参数为角点检测的敏感度,其值必须介于3~31之间的奇数
# 最后一个参数在 0.04 到 0.06 之间
dst = cv2.cornerHarris(gray,2,3,0.04)

# 设置阈值,将角点绘制出来,阈值根据图像进行选择
img[dst>0.001*dst.max()] = [0,0,255]

cv2.imshow("harris",img)
cv2.waitKey (0)  #等待一定时间,让显示内容可以被看到
cv2.destroyAllWindows()  #关闭所有显示框
 

3.3 LabVIEW中实现Harris角点检测

在LabVIEW中实现Harris检测使用的API是:cornerHarris.vi

参数说明:

  • src:数据类型为 float32 的输入图像。
  • blockSize:角点检测中要考虑的邻域大小。
  • ksize:sobel求导使用的核大小
  • k :角点检测方程中的自由参数,取值参数为 [0.04,0.06]. 【程序harris_corner.vi】 【结果】

四、项目源码

项目源码下载:download.csdn.net/download/vi...


总结

以上就是今天要给大家分享的内容,希望对大家有用。如有笔误,还请各位及时指正。欢迎大家关注博主。我是virobotics(仪酷智能),我们下篇文章见~

如您想要探讨更多关于LabVIEW与人工智能技术,欢迎加入我们的技术交流群:705637299。进群请备注:LabVIEW机器视觉

如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏

相关推荐
Terry Cao 漕河泾17 分钟前
SRT3D: A Sparse Region-Based 3D Object Tracking Approach for the Real World
人工智能·计算机视觉·3d·目标跟踪
多猫家庭22 分钟前
宠物毛发对人体有什么危害?宠物空气净化器小米、希喂、352对比实测
人工智能·宠物
AI完全体26 分钟前
AI小项目4-用Pytorch从头实现Transformer(详细注解)
人工智能·pytorch·深度学习·机器学习·语言模型·transformer·注意力机制
AI知识分享官26 分钟前
智能绘画Midjourney AIGC在设计领域中的应用
人工智能·深度学习·语言模型·chatgpt·aigc·midjourney·llama
程序小旭1 小时前
Objects as Points基于中心点的目标检测方法CenterNet—CVPR2019
人工智能·目标检测·计算机视觉
阿利同学1 小时前
yolov8多任务模型-目标检测+车道线检测+可行驶区域检测-yolo多检测头代码+教程
人工智能·yolo·目标检测·计算机视觉·联系 qq1309399183·yolo多任务检测·多检测头检测
CV-King1 小时前
计算机视觉硬件知识点整理(三):镜头
图像处理·人工智能·python·opencv·计算机视觉
天南星1 小时前
PaddleOCR和PaddleLite的关联和区别
深度学习·图像识别
Alluxio官方1 小时前
Alluxio Enterprise AI on K8s FIO 测试教程
人工智能·机器学习
AI大模型知识分享1 小时前
Prompt最佳实践|指定输出的长度
人工智能·gpt·机器学习·语言模型·chatgpt·prompt·gpt-3