Python计算机视觉SIFT尺度不变的图像特征变换
目录
- 图像特征-SIFT尺度不变特征变换
- 1.1图像尺度空间
- 1.2多分辨率金字塔
- 1.3高斯差分金字塔
- 1.4DoG空间极值检测
- 1.5关键点的精确定位
- 1.6消除边界响应
- 1.7特征点的主方向
- 1.8生成特征描述
- OpenCV SIFT函数
图像特征-SIFT尺度不变特征变换
1.1图像尺度空间
在一定的范围内,无论物体是大还是小,人眼都可以分辨出来,然后计算机要具有相同的能力却很难,所以要让机器能够对物体在不同尺度下有一个统一的认知,就需要考虑图像在不同尺度下都存在的特点。
尺度空间的获取通常使用高斯模糊来实现
1.2多分辨率金字塔
1.3高斯差分金字塔
1.4DoG空间极值检测
为了寻找尺度空间的极值点,每个像素点要和其图像域(同一尺度空间)和尺度域(相邻的尺度空间)的所有相邻点进行比较,当其大于(或者小于)所有相邻点时,该点就是极值点。如下图所示,中间的检测点要和其所在图像的33邻域8个像素点,以及其相邻的上下两层33邻域18个像素点,共26个像素点进行比较。
1.5关键点的精确定位
这些候选关键点是DoG空间的局部极值点,而且这些极值点均为离散的点,精确定位极值点的一种方法是对尺度空间DoG函数进行曲线拟合,计算其极值点,从而实现关键点的精确定位。
1.6消除边界响应
1.7特征点的主方向
1.8生成特征描述
OpenCV SIFT函数
import cv2 #opencv 读取进来为BGR格式 import matplotlib.pyplot as plt import numpy as np #一个魔法指令,不需要采用plt.show()显示图像 %matplotlib inline print(cv2.__version__) # 3.4.1.15 pip install opencv-python ==3.4.1.15 pip install opencv-contrib-python==3.4.1.15 def cv_show(name,img): cv2.imshow(name,img) cv2.waitKey(0) cv2.destroyAllWindows() img = cv2.imread('images/test2.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv_show('gray',gray) #得到特征点 sift = cv2.xfeatures2d.SIFT_create() kp = sift.detect(gray,None) img = cv2.drawKeypoints(gray,kp,img) cv_show('keyPoint',img) # 计算特征 kp, des = sift.compute(gray, kp) print(np.array(kp).shape) print(des.shape) print(des[0])
以上就是Python计算机视觉SIFT尺度不变的图像特征变换的详细内容,更多关于Python SIFT尺度不变图像特征变的资料请关注我们其它相关文章!
相关推荐
-
Python与AI分析时间序列数据
目录 简介 序列分析或时间序列分析的基本概念 安装实用软件包 Pandas hmmlearn PyStruct CVXOPT Pandas:处理,切片和从时间序列数据中提取统计数据 示例 处理时间序列数据 切片时间序列数据 提取来自时间序列数据的统计数据 平均值 最大值 最小值 一次性获取所有内容 重新采样 使用mean()重新采样 Re -sampling with median() 滚动平均值 通过隐马尔可夫分析顺序数据模型(HMM) 隐马尔可夫模型(HMM) 状态(S) 输出符号(O) 状
-
python计算机视觉实现全景图像拼接示例
首先对图片进行预处理,是图片的分配率大小在合适的范围内,避免图片太大占满整个电脑屏幕. from PIL import Image def produceImage(file_in, width, height, file_out): image = Image.open(file_in) resized_image = image.resize((height, width), Image.ANTIALIAS) resized_image.save(file_out) if __name__
-
AI与Python计算机视觉教程
目录 计算机视觉 计算机视觉层次结构 计算机视觉与图像处理 应用 机器人 医学 安全 运输 安装有用的包 阅读,写作和显示图像 OpenCV函数用于读取,显示,写入图像文件 示例 色彩空间转换 边缘检测 人脸检测 哈尔Cascade数据 眼睛检测 计算机视觉涉及使用计算机软件和硬件建模和复制人类视觉.在本章中,您将详细了解这一点. 计算机视觉 计算机视觉是一门学科,根据场景中存在的结构的属性,研究如何从其2d图像重建,中断和理解3d场景. 计算机视觉层次结构 计算机视觉分为以下三个基本类别 -
-
AI与Python人工智能遗传算法
目录 什么是遗传算法? 如何使用GA进行优化问题? GA机制优化过程的阶段 安装必要的软件包 使用遗传算法实现解决方案 生成位模式 符号回归问题 本章详细讨论了人工智能的遗传算法. 什么是遗传算法? 遗传算法(GA)是基于自然选择和遗传概念的基于搜索的算法.GA是更大的计算分支的子集,称为进化计算. GA由John Holland及其密歇根大学的学生和同事开发,最着名的是David E. Goldberg.从那以后,已经尝试了各种优化问题并取得了很大的成功. 在GA中,我们有一组可能的解决方案来
-
AI与Python人工智能启发式搜索概念理解
目录 AI中的启发式搜索的概念 不知情和知情搜索之间的区别 不知情的搜索 知情搜索 约束满足问题(CSP) 约束满足解决现实问题 解决代数关系 魔术广场 启发式搜索在人工智能中起着关键作用.在本章中,您将详细了解它. AI中的启发式搜索的概念 启发式是一个经验法则,它引导我们找到可能的解决方案.人工智能中的大多数问题具有指数性,并且具有许多可能的解决方案.您不确切知道哪些解决方案是正确的,并且检查所有解决方案将非常昂贵. 因此,启发式的使用缩小了对解决方案的搜索范围并消除了错误的选项.使用启发式
-
Python调用百度AI实现身份证识别
目录 一.安装baidu-aip模块 二.获取百度AI接口密钥 三.调用百度接口识别身份证 一.安装baidu-aip模块 按win+R打开cmd,在里面输入 pip3 install baidu-aip 若出现如下界面,即成功安装了baidu-aip模块: 如果想快速了解识别营业执照代码原理,可以跳过第二部分,先看第三部分的内容. 二.获取百度AI接口密钥 在应用python识别身份证的过程中,有三行代码使用了百度AI接口密钥,故先阐述如何获得该密钥.首先,进入如下百度AI官方网站:https
-
Python计算机视觉SIFT尺度不变的图像特征变换
目录 图像特征-SIFT尺度不变特征变换 1.1图像尺度空间 1.2多分辨率金字塔 1.3高斯差分金字塔 1.4DoG空间极值检测 1.5关键点的精确定位 1.6消除边界响应 1.7特征点的主方向 1.8生成特征描述 OpenCV SIFT函数 图像特征-SIFT尺度不变特征变换 1.1图像尺度空间 在一定的范围内,无论物体是大还是小,人眼都可以分辨出来,然后计算机要具有相同的能力却很难,所以要让机器能够对物体在不同尺度下有一个统一的认知,就需要考虑图像在不同尺度下都存在的特点. 尺度空间的获取
-
Python 计算机视觉编程进阶之OpenCV 图像锐化及边缘检测
目录 前言 (1)图像锐化 (2)图像边缘检测 a. 图像边缘 b. 边缘检测 1. 一阶微分算算子.二阶微分算子 2. 读取图像信息 3. Sobel 算子 4. Laplacian 算子 5. Scharr 算子 6. Canny 算子 7. 总结 8. 参考论文 参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起进步!加油!! 前言 (1)图
-
Python 计算机视觉编程进阶之OpenCV 进行霍夫变换
目录 前言 (1)读取图像信息 (2)霍夫变换的目的及应用 1. 霍夫变换 2. 霍夫线变换 (1)基本概念 (2)代码实现 3. 霍夫圆变换 (1)基本概念 (2)代码实现 4. 将所有图像绘制到一张图中 5. 总体代码 结束语 参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起进步!加油!! 前言 (1)读取图像信息 经典操作,不必多说: "&
-
Python中人脸图像特征提取方法(HOG、Dlib、CNN)简述
目录 人脸图像特征提取方法 (一)HOG特征提取 (二)Dlib库 (三)卷积神经网络特征提取(CNN) 人脸图像特征提取方法 (一)HOG特征提取 1.HOG简介 Histogram of Oriented Gridients,缩写为HOG,是目前计算机视觉.模式识别领域很常用的一种描述图像局部纹理的特征.它的主要思想是在一副图像中,局部目标的表象和形状能够被梯度或边缘的方向密度分布很好地描述.其本质为:梯度的统计信息,而梯度主要存在于边缘的地方. 2.实现方法 首先将图像分成小的连通区域,这
-
详解Python计算机视觉 图像扭曲(仿射扭曲)
对图像块应用仿射变换,我们将其称为图像扭曲(或者仿射扭曲).该操作不仅经常应用在计算机图形学中,而且经常出现在计算机视觉算法中. 一.仿射变换原理 仿射变换能够保持图像的"平直性",包括旋转,缩放,平移,错切操作.对于三个点,仿射变换可以将一副图像进行扭曲,使得三对对应点对可以完美地匹配上.仿射变换具有6个自由度,有三个对应点对可以给出6个约束条件(对于这三个对应点对,x和y坐标必须都要匹配) 仿射变换是在几何上定义为两个向量空间之间的一个仿射变换或者仿射映射.由一个非奇异的线性变换(
-
Python中OpenCV图像特征和harris角点检测
目录 概念 第一步:计算一个梯度 Ix,Iy 第二步:整合矩阵,计算特征值 第三步:比较特征值的大小 第四步: 非极大值抑制,把真正的角点留下来,角点周围的过滤掉 代码实现 概念 第一步:计算一个梯度 Ix,Iy 第二步:整合矩阵,计算特征值 第三步:比较特征值的大小 第四步: 非极大值抑制,把真正的角点留下来,角点周围的过滤掉 代码实现 import cv2 import numpy as np img =cv2.imread('pie.png') print('img.shape',img.
-
python计算机视觉opencv图像金字塔轮廓及模板匹配
目录 1.图像金字塔 ①高斯金字塔 ②拉普拉斯金字塔 2.图像轮廓 ①寻找轮廓 ②轮廓特征 ③轮廓绘制 3.模板匹配 ①模板匹配 ②匹配框线绘制 ③多对象匹配 4.直方图统计 ①直方图绘制 ②直方图统计 ③直方图的mask操作 ④直方图均衡化 5.傅里叶变换 1.图像金字塔 ①高斯金字塔 向下采样,数据会越来越少,减少的方式是:将偶数行和列删除 向上采样,数据会越来越多,将图像在每个方向上扩大为原来的两倍,新增的行和列用0来填充.使用先前同样的内核与放大后的图像卷积,获得近似值. 上采样之后,图
-
Python 计算机视觉编程进阶之图像特效处理篇
前言 图像特效处理一般是对图像的像素点的通道.灰度值值等进行操作,达到想要的结果,下面将会给大家一一呈现一些简单特效的原理以及代码实现,希望能够对大家有一定的帮助. 话不多说,先是本系列文章的经典操作之读取图像信息: """ Author:XiaoMa date:2021/11/16 """ import cv2 import numpy as np import math import matplotlib.pyplot as plt img0
-
详解基于python的图像Gabor变换及特征提取
1.前言 在深度学习出来之前,图像识别领域北有"Gabor帮主",南有"SIFT慕容小哥".目前,深度学习技术可以利用CNN网络和大数据样本搞事情,从而取替"Gabor帮主"和"SIFT慕容小哥"的江湖地位.但,在没有大数据和算力支撑的"乡村小镇"地带,或是对付"刁民小辈","Gabor帮主"可以大显身手,具有不可撼动的地位.IT武林中,有基于C++和OpenCV,或
-
应用OpenCV和Python进行SIFT算法的实现详解
应用OpenCV和Python进行SIFT算法的实现 如下图为进行测试的gakki101和gakki102,分别验证基于BFmatcher.FlannBasedMatcher等的SIFT算法,对比其优劣.为体现出匹配效果对于旋转特性的优势,将图gakki101做成具有旋转特性的效果. 基于BFmatcher的SIFT实现 BFmatcher(Brute-Force Matching)暴力匹配,应用BFMatcher.knnMatch( )函数来进行核心的匹配,knnMatch(k-nearest
随机推荐
- vue项目中做编辑功能传递数据时遇到问题的解决方法
- JAVA中阻止类的继承(官方和非官方)
- 用C语言操作MySQL数据库的通用方法
- PHP自动生成表单代码分享
- PHP4引用文件语句的对比
- Android实现夜间模式切换功能实现代码
- 详解Mysql命令大全(推荐)
- php实现批量修改文件名称的方法
- 漂亮的仿flash菜单,来自蓝色经典
- Java用Cookie限制点赞次数(简版)
- sqlserver另类非递归的无限级分类(存储过程版)
- js实现的很酷的连接提示效果
- JQuery模板插件 jquery.tmpl 动态ajax扩展
- js DOM模型操作
- 支付宝开发平台之第三方授权登录与获取用户信息
- Java网络编程之简单的服务端客户端应用实例
- Android开发中Launcher3常见默认配置修改方法总结
- Python中的Classes和Metaclasses详解
- 实战SATA硬盘安装64位XP
- Laravel ORM对Model::find方法进行缓存示例详解