pythonopencv计算公式,python opencv图像识别算法
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
目录
SIFT算法
SIFT实现流程
SIFT特性与原理
SIFT代码示例
SURF算法
拓展
关键点KeyPoints剖析
SIFT算法
SIFT,即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。
SIFT实现流程
1.实例化SIFT
2.找出关键点并计算描述符
特征检测与描述符提取的相关函数:
detect:该函数可用来从一张图像或一组图像中检测特征(即关键点)。 compute:该函数可以用来从关键点中提取(即计算)描述符。 detectAndCompute:该函数可以同时执行检测与计算。 descriptorSize()、descriptorType()、defaultNorm()3.画出关键点
API:
参数:
image:输入的灰度图像 keypoints:从原图中获得的关键点,这也是画图时所用到的数据 outImage:输出的图片 color:颜色 flags:绘图功能的标识设置有以下4种:1. cv2.DRAW_MATCHES_FLAGS_DEFAULT:只绘制特征点的坐标点,显示在图像上就是一个个小圆点,每个小圆点的圆心坐标都是特征点的坐标2. cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS:绘制特征点的时候绘制的是一个个带有方向的圆,这种方法同时显示图像的坐标,size,和方向,是最能显示特征的一种绘制方式3. cv2.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG:函数不创建输出的图像,而是直接在输出图像变量空间绘制,要求本身输出图像变量就是一个初始化好了的,size与type都是已经初始化好的变量4. cv2.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS:单点的特征点不被绘制SIFT特性与原理
旋转、缩放、平移不变性 区分性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配 解决图像仿射变换,投影变换的关键的匹配 光照影响小 目标遮挡影响小 噪声景物影响小SIFT实现原理参考:
https://www.cnblogs.com/my-love-is-python/p/10414135.html
SIFT代码示例
原图:
SIFT检测结果:
修改drawKeyPoints函数,flags使用cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS
SURF算法
(注:目前SURF为专利授权算法,只有在opencv_contrib构建中使用了 OPENCV_ENABLE_NONFREE CMake标志时才可用)
应用SURF进行特征检测与描述符的提取只需要将SIFT的示例代码稍作修改:
SIFT代码:
修改后的SURF代码:
拓展
关键点KeyPoints剖析
pt:即点,包含图像中关键点的位置x,y angle:表示特征的方向,如前面处理过的图像中的径向线的方向。如果检测关键点的算法能够找到它,则设置它,否则设置为-1 size:表示特征的直径 response:表示关键点的强度,可对关键点排序或者滤除强度较弱的关键点等等 octave:表示发现该特征的 图像金字塔层 。这是一个非常强大而实用的概念,广泛用于在检测关键点以及使用关键点进一步检测图像上可能大小不同的对象时,实现尺度独立,或者说尺度不变性。为了实现该功能,用相同的算法处理同一图像的不同尺度版本(仅缩小版本),称每一个尺度为金字塔的一个分组或一层。 class_id:为一个关键点或者一组关键点分配自定义的标识符XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com
相关推荐