使用LabVIEW AI视觉工具包快速实现SIFT特征检测(含源码)

news2024/12/17 14:58:36

‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主
🎄所属专栏:『LabVIEW深度学习实战』
🍻上期文章: 使用LabVIEW AI视觉工具包快速实现霍夫圆和霍夫直线检测(含源码)
📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 欢迎大家✌关注、👍点赞、✌收藏、👍订阅专栏

文章目录

  • 前言
  • 一、环境搭建
    • 1.1 部署本项目时所用环境
    • 1.2 LabVIEW工具包下载及安装
  • 二、SIFT简介
  • 三、SIFT原理
  • 四、SIFT特征检测实战
  • 五、项目源码
  • 总结

前言

之前我们给大家介绍了LabVIEW实现Harris角点检测,Harris角点检测算法具有旋转不变性,但不具有尺度不变性,以下图为例,在左侧小图中可以检测到角点,但是图像被放大后,在使用同样的窗口,就检测不到角点了。所以本文给大家介绍Lowe教授在1999年提出的尺度不变特征变换匹配算法SIFT在LabVIEW中的部署。

在这里插入图片描述


一、环境搭建

1.1 部署本项目时所用环境

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

1.2 LabVIEW工具包下载及安装

  • AI视觉工具包下载与安装参考:
    https://blog.csdn.net/virobotics/article/details/123656523
  • AI视觉工具包介绍:
    https://blog.csdn.net/virobotics/article/details/123522165

二、SIFT简介

SIFT(Scale Invariant Feature Transform,尺度不变特征变换匹配算法)是由David G. Lowe教授在1999年(《Object Recognition from Local Scale-Invariant Features》)提出的高效区域检测算法,在2004年(《Distinctive Image Features from Scale-Invariant Keypoints》)得以完善。

SIFT可以应用到物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对等方向。

SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等,SIFT特征对于旋转和尺度均具有不变性,并且对于噪声、视角变化和光照变化具有良好的鲁棒性。

三、SIFT原理

Lowe将SIFT算法分解为如下四步

  1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯差分函数来识别潜在的对于尺度和旋转不变的关键点。
  2. 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
  3. 关键点方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而保证了对于这些变换的不变性。
  4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度作为关键点的描述符,它允许比较大的局部形状的变形或光照变化。

四、SIFT特征检测实战

0️⃣相关VI及参数介绍

new.vi:实例化sift
在这里插入图片描述
参数说明:

  • nfeatures默认值为3,表示保留的最佳特性的数量。特征按其得分进行排序,若输入为0则表示保留所有特征;其他输入端使用默认值即可

Detector.vi:在图像中找到关键点;
在这里插入图片描述

参数说明:

  • img:进行关键点检测的图像,注意是灰度图像
  • vector_KeyPoint out:表示关键点信息向量

draw_KeyPoints.vi:在关键点的位置绘制小圆圈
在这里插入图片描述

参数说明:

  • img: 原始图像;
  • vector_KeyPoint:关键点信息,将其绘制在图像上;
  • dst out:绘制关键点信息后的图片

1️⃣实现SIFT特征检测
实现步骤:读取图片并转化为灰度图>>实例化SIFT>>检测关键点>>将关键点检测结果绘制在图像上(对每一个关键点只绘制中间点)

在这里插入图片描述

2️⃣运行结果
在这里插入图片描述


五、项目源码

项目源码下载:https://download.csdn.net/download/virobotics/87808362


总结

以上就是今天要给大家分享的内容,希望对大家有用。下篇文章将给大家介绍SIFT特征匹配,我们下篇文章见~

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

推荐阅读

LabVIEW图形化的AI视觉开发平台(非NI Vision),大幅降低人工智能开发门槛
LabVIEW图形化的AI视觉开发平台(非NI Vision)VI简介
LabVIEW AI视觉工具包OpenCV Mat基本用法和属性
手把手教你使用LabVIEW人工智能视觉工具包快速实现图像读取与采集
👇技术交流 · 一起学习 · 咨询分享,请联系👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter事务控制器聚合报告

Jmeter 事务控制器。 在Jmeter中,默认一个取样器就是一个事务事务控制器控制其子集取样器,合并为一个事务 添加:逻辑控制器/Logic Controller -> 事务控制器/Transaction Controller TPS: 服务器每秒处理的事务数在事务控制器下添加多个…

海康威视iVMS综合安防系统任意文件上传漏洞复现(0day)

0x01 产品简介 海康威视iVMS集中监控应用管理平台,是以安全防范业务应用为导向,以视频图像应用为基础手段,综合视频监控、联网报警、智能分析、运维管理等多种安全防范应用系统,构建的多业务应用综合管理平台。 0x02 漏洞概述 海…

利用CX-ONE搭建omron PLC仿真环境

目录 1 安装参考 2 CX-Simulator 2.1 打开软件 2.2 选择PLC配置文件存放位置 2.3 选择PLC类型 2.4 PLC Unit全部选择 2.5 设置FINS通讯 2.6 设置串口通讯 2.7 建立连接 3 CX-Programmer 3.1 新建工程 3.2 设置PLC型号 3.3 设置网络类型 3.4 设置串口通讯 3.5 设…

chatgpt在哪用?详谈一下gpt的各方面

ChatGPT是一种人工智能技术,它可以通过自然语言交互回答各种问题。这种技术已经被广泛应用于各个领域和场景中,帮助人们更好地获取知识和信息。那么,ChatGPT在哪里使用呢?下面我们来探讨一下。 一.chatgpt在哪用 打开任意的浏览器…

MSP 现场服务管理

什么是现场服务管理 现场服务管理 (FSM) 是确保有效规划、安排和执行现场服务活动所遵循的做法。它涉及有效利用资源,如人员、技术和材料,以满足客户的服务期限和标准。FSM还涉及现场技术人员,服务交付经理和其他利益…

救命稻草!阿里P8耗时5月打造的架构师速成手册,千金难求

前言 软件行业技术开发从业人员众多,很多程序员朋友在从业2-3年后都会进入一个迷茫期,面对个人发展的瓶颈。即如何从普通开发人员转型成高层次的系统架构师和技术管理人员。对程序员来说,架构师的薪资比较充满诱惑,年薪四五十万对…

Spring——Spring_XML实现DI

1.实现DI1 1.1DI给对象属性赋值 【1】通过set方法给对象属性赋值 <bean id"user2" class"org.example.User" ><property name"userId" value"1"></property><property name"uname" value"漳卅…

智能家居新选择,雷达感应器成品方案,人体存在感应控制照明联动

在现代社会&#xff0c;随着智能化技术的不断推进&#xff0c;人体存在感应控制照明已经成为了一项必备的技术手段。 ISE101T-5雷达感应器成品&#xff0c;作为一款拥有多种特点和优势的设备&#xff0c;不仅可以感应到室内的人体存在&#xff0c;还能够通过控制照明实现更为舒…

北京理工大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 计算机学院始建于1958年&#xff0c;是全国最早设立计算机专业的高校之一。2018年4月&#xff0c;计算机学院、软件学院、网络科学与技术研究院合并成立新的计算机学院。学院累计为国家培养各类人才15000余名。计算机科…

登录功能应该重点测试哪些方面,你都了解全面了么?

登录功能的测试是最常见也是最重要的&#xff0c;同时也是最容易被忽略的&#xff0c;关于登录功能的测试用例总结如下&#xff1a; 功能测试 输入已注册用户名和正确的密码&#xff0c;是否登录成功&#xff1b;输入已注册的用户名和错误的密码&#xff0c;是否登录失败&…

【OpenCV DNN】Flask 视频监控目标检测教程 02

欢迎关注『OpenCV DNN Youcans』系列&#xff0c;持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 01 【OpenCV DNN】Flask 视频监控目标检测教程 02 【OpenCV DNN】Flask 视频监控目标检测教程 02 3.1 从URL地址读取图片进行处理3.1.1 从指定的 url 地址读取图像3.1.2 …

C++学习之路-开始

引言 C在人们的眼中通常是“复杂”一词的代表&#xff0c;但其实C有严谨的体系结构&#xff0c;以C构建起来的工程不仅严谨并且执行速度非常快。计算机科学本就是一门工程学科&#xff0c;C就相当于是一种搭建房子的基础方法&#xff0c;学完C我们将得到一把强而有力武器来武装…

2023-5-22-C++异常处理机制学习

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

Go语言核心编程-函数、包和错误处理

第 6 章 函数、包和错误处理 6.1 为什么需要函数 6.1.1请大家完成这样一个需求: 输入两个数,再输入一个运算符(,-,*,/)&#xff0c;得到结果.。 6.1.2使用传统的方法解决 走代码 分析一下上面代码问题 上面的写法是可以完成功能, 但是代码冗余同时不利于代码维护函数可以解…

跟卖又被“抄家”了,亚马逊新手要怎么做?

今天网上看到又有一家跟卖的被砸了&#xff0c;图片大致是下面这样的&#xff08;网上找的图&#xff0c;跟我看到的图片类似&#xff09;。 图片下方还有几句话&#xff1a;“事已办完&#xff0c;跟卖的窝点被我端了&#xff01;” 然后整个群里是一片欢腾&#xff0c;各种“…

网络安全是一个好专业吗

前言 网络安全作为一个专业领域&#xff0c;在当今数字时代正变得越发重要和关键。无论是企业还是个人&#xff0c;面对着越来越频繁的网络威胁和攻击&#xff0c;网络安全领域的专业人员扮演着至关重要的角色。那么&#xff0c;从一个资深网安工程师的角度来看&#xff0c;网…

SpringBoot——Bean属性绑定

简单介绍&#xff1a; 之前我们介绍过我们如何在Bean中获取配置文件的方式&#xff0c;就是通过将类注册到Spring容器中&#xff0c;然后通过ConfigurationProperties()注解&#xff0c;这个注解有一个参数叫做prefix&#xff0c;参数的值就是我们在配置文件中配置的一组数据的…

成为移动测试高手!本文教你掌握移动APP测试的关键知识和技巧,提升测试水平,轻松获取高薪工作!(上)

目录 引言 首先搭建android-sdk环境 一.兼容性测试【原生APP】 1.WEB 2.APP 2.1操作系统 2.2分辨率 2.3不同厂家 2.4网络类型 (1)h5小程序类型&#xff1a; 如何测试APP在不同手机的情况 如何测试弱网络 &#xff08;2&#xff09;.小程序 二.功能测试点 (另外)…

备战2023年秋招,一套吃透全部技术栈.....

今天跟大家分享这份测试工程师全套面试攻略包含了软件测试基础 、MySQL基础、Liunx、web测试、接口测试、App测试、Python、selenium、管理工具、性能测试、LordRunner、计算机网络、组成原理、数据结构与算法、ab测试等。这些都是我在各个大厂总结出来的面试真题&#xff0c;很…