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

如何使用c 进行网站开发北京做商铺的网站

如何使用c 进行网站开发,北京做商铺的网站,网站网站环境搭建教程,网站建设需要什么人文章目录 sift特征提取一、基本原理二、特点三、代码实现1. 函数方法2. 检测图像中的关键点3. 绘制关键点4. 计算关键点描述符5. 输出特征坐标点 总结 sift特征提取 SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)特征检测是一种…

文章目录

  • sift特征提取
    • 一、基本原理
    • 二、特点
    • 三、代码实现
      • 1. 函数方法
      • 2. 检测图像中的关键点
      • 3. 绘制关键点
      • 4. 计算关键点描述符
      • 5. 输出特征坐标点
  • 总结

sift特征提取

SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)特征检测是一种在图像处理和计算机视觉领域广泛使用的算法,主要用于特征点检测和特征匹配。

SIFT特征具有对旋转、尺度缩放、亮度变化等保持不变性,是一种非常稳定的局部特征。

一、基本原理

SIFT算法通过在不同尺度空间中寻找关键点,并计算这些关键点的局部特征描述子,从而实现图像的特征匹配和识别。

关键点(也称为特征点或兴趣点)是指图像中一些具有独特性和稳定性的局部特征区域。

其基本原理包括以下几个步骤:

  1. 构建尺度空间:通过对原始图像进行多次高斯模糊和降采样,构建出高斯金字塔,以在不同尺度下检测出特征点。
  2. 检测关键点:利用高斯差分(DoG)图像检测尺度空间中的极值点,这些极值点被认为是潜在的关键点。
  3. 定位关键点位置:通过泰勒展开式对DoG图像进行拟合,精确定位关键点的位置,并排除低对比度和边缘响应的干扰。
  4. 确定关键点方向:基于图像局部的梯度方向,为每个关键点分配一个或多个主方向,以保证特征描述子的旋转不变性。
  5. 生成特征描述子:在关键点周围的邻域内,测量图像局部的梯度,并将这些梯度变换成一种表示形式,生成具有128维特征向量的特征描述子。

二、特点

  1. 图像的局部特征:对旋转、尺度缩放、亮度变化保持不变,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
  2. 独特性好:信息量丰富,适用于海量特征库进行快速、准确的匹配。
  3. 多量性:即使是很少几个物体也可以产生大量的SIFT特征。
  4. 高速性:经优化的SIFT匹配算法甚至可以达到实时性。
  5. 扩招性:可以很方便的与其他的特征向量进行联合。

三、代码实现

原始图片:

在这里插入图片描述

1. 函数方法

  • 创建sift特征的提取对象:
cv2.SIFT_create() / cv2.xfeatures2d.SIFT_create() -----> 创建一个sift特征的提取对象
  • 检测图像中的关键点:
sift.detect(img)
  • 绘制关键点:
drawKeypoints(image,keypoints,outImage,color=None,flags=None)
参数:
-- image:原始图像
-- keypoints:从原图中获得的关键点,这也是画图时所用到的数据
-- outImage:输出图像,可以是原图也可以是None
-- color:颜色设置,更改画笔颜色
-- flags:绘图功能的标识设置
  • 计算关键点描述符:
sift.compute() ---> 输出关键点的形状和描述符的形状

2. 检测图像中的关键点

# 检测图像中的关键点
# cv2.SIFT_create() / cv2.xfeatures2d.SIFT_create() -----> 创建一个sift特征的提取对象
#sift.detect(img) -----> 在图像中查找关键点yf = cv2.imread("tu.jpg")
yf_gray = cv2.cvtColor(yf,cv2.COLOR_BGR2GRAY)
sift = cv2.SIFT_create() # 创建sift对象
kp = sift.detect(yf_gray) # 查找关键点

3. 绘制关键点

yf_sift = cv2.drawKeypoints(yf,kp,None,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow('yf_sift',yf_sift)
cv2.waitKey(0)

在这里插入图片描述

4. 计算关键点描述符

主要用于方便后期进行特征匹配:

# 使用sift.compute()计算关键点描述符,方便后期的特征匹配
kp,des = sift.compute(yf,kp)
print(np.array(kp).shape,des.shape)
# 输出关键点的形状和描述符的形状
# np.array(kp).shape表示关键点的数量和属性
# des.shape表示描述符的数量和属性
-------------------
(764,) (764, 128)

5. 输出特征坐标点

# 输出特征点坐标
# .pt:将隐藏的坐标数据显示出来
for i in kp:print(f"特征点坐标为:{i.pt}")
----------------------
展示部分结果:
特征点坐标为:(5.986441612243652, 704.0958862304688)
特征点坐标为:(6.146509647369385, 192.4614715576172)
特征点坐标为:(6.952261447906494, 719.527587890625)
特征点坐标为:(11.127826690673828, 497.750732421875)
特征点坐标为:(11.127826690673828, 497.750732421875)

总结

本篇介绍了:

  1. sift特征提取的作用是描绘出图中的特征点
  2. 如何获得特征点的信息,以便于特征匹配
http://www.15wanjia.com/news/182508.html

相关文章:

  • 做网站运维的待遇湖北创研楚商网站建设销售人员
  • 个人印章在线制作网站美丽深圳微信公众号二维码
  • 内部网站如何做网站开发工程师面试题
  • 网站建设公司前十名郑州网站制作天强科技
  • 红番茄 网站点评百度手机网页版入口
  • 手机网站和电脑网站的区别少儿编程免费软件
  • 河南郑州网站设计公司市场监督管理局是什么单位
  • 做一个展示型网站多少钱河北省建设机械会网站首页
  • 网站开发需要懂哪些做旅游门票网站需要什么材料
  • 如何快速收录网站番禺网站开发价格
  • 装修找客户去哪个网站团购网站建设报价
  • 购买网站模版可以自己做吗网站域名虚拟主机
  • 企业网站模板公司拐角型布局网站
  • 专业建站模板做设计的素材网站有哪些
  • 做网站用的幻灯片大小宁波网站建设营销推广
  • 做带字头像的网站怎么制作图片和文字一起
  • 门户网站推荐医院招聘网站建设和维护
  • 网站优化费用网站开发api和微端
  • 锦州网站制作做素食香料哪个网站买
  • 招聘网站开发方案doc263企业邮箱登录入口手机版
  • 重庆网站建设 观音桥自建站搭建
  • 行距网站哪些网站做翻译可以赚钱
  • 郑州有哪些搞网站开发的公司贵州省健康码二维码图片下载
  • 国内知名网站建设企业建瓯市建设银行网站
  • 北京最大专业网站建设重庆建设网站哪家专业
  • 网站建设和推广的完整话术中山网站建设优化
  • 网站开发工作方向网站建设在线学习
  • 广州做网站海珠信科百度收录网站技巧
  • 长沙企业网站建设笔记本彩页设计
  • 网站的管理包括漳州项目工程交易中心网