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

模具厂咋做网站阿里巴巴网站分类板块做全屏

模具厂咋做网站,阿里巴巴网站分类板块做全屏,怎么做电脑网站后台,做网站语言知乎OpenCV计算机视觉实战(17)——特征点检测详解0. 前言1. Harris 角点检测1.1 应用场景1.2 实现过程2. Shi-Tomasi 算法2.1 应用场景2.2 实现过程3. 亚像素级角点3.1 应用场景3.2 实现过程小结系列链接0. 前言 在计算机视觉中,角点 (Corner&am…

OpenCV计算机视觉实战(17)——特征点检测详解

    • 0. 前言
    • 1. Harris 角点检测
      • 1.1 应用场景
      • 1.2 实现过程
    • 2. Shi-Tomasi 算法
      • 2.1 应用场景
      • 2.2 实现过程
    • 3. 亚像素级角点
      • 3.1 应用场景
      • 3.2 实现过程
    • 小结
    • 系列链接

0. 前言

在计算机视觉中,角点 (Corner, 也称特征点) 是图像中特征信息最丰富的点,对应周围像素灰度在两个正交方向均有显著变化。准确检测并定位角点,对于后续的图像配准、运动跟踪和三维重建等任务至关重要。本文将介绍并实现经典的 Harris 角点检测、改进的 Shi-Tomasi 算法以及亚像素级角点优化。

1. Harris 角点检测

Harris 算法基于自相关矩阵,对图像每个像素邻域的灰度变化进行二阶矩分析,当两个正交方向都发生大变化时,该像素即为角点。

1.1 应用场景

  • 摄像头标定:角点分布均匀、特征明显,便于内参求解
  • 纹理分析:建筑、机械表面角点多,能辅助表面缺陷检测
  • 目标跟踪:对比边缘,角点更易在变形、遮挡下保持稳定

1.2 实现过程

  • 读取图像并灰度化
  • 计算图像梯度:使用 Sobel 算子分别获取 IxI_xIx, IyI_yIy
  • 构建自相关矩阵
    M=(∑wIx2∑wIxIy∑wIxIy∑wIy2)M= \begin{pmatrix}∑w I_x^2&∑w I_xI_y\\ ∑w I_xI_y&∑w I_y^2 \end{pmatrix}M=(wIx2wIxIywIxIywIy2)
    其中 www 是高斯窗口
  • 计算响应函数
    R=det⁡(M)−k(trace(M))2R=det⁡(M)−k (trace(M))^2R=det(M)k(trace(M))2
    kkk 常取 0.04–0.06
  • 非极大值抑制与阈值筛选:保留局部最大且 RRR 大于阈值的点
import cv2
import numpy as np# 功能:Harris 角点检测并可视化
img = cv2.imread('1.jpeg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)# 1. 直接调用 OpenCV Harris
dst = cv2.cornerHarris(src=gray, blockSize=2, ksize=3, k=0.06)# 2. 扩大标记区域并阈值化
dst = cv2.dilate(dst, None)
corners = dst > 0.01 * dst.max()# 3. 在原图中标记角点
output = img.copy()
output[corners] = [0, 0, 255]cv2.imshow('Harris Corners', output)
cv2.waitKey(0)
cv2.destroyAllWindows()

Harris

  • cv2.cornerHarris(src, blockSize, ksize, k)
    • blockSize:角点检测时考察邻域大小
    • ksizeSobel 求导算子大小
    • kHarris 参数,控制响应函数的敏感度
  • cv2.dilate(src, kernel):对检测响应图进行膨胀,便于后续非极大值检测
  • 阈值筛选 (dst > thresh):保留响应值较大的角点

2. Shi-Tomasi 算法

Shi-Tomasi 算法在 Harris 基础上,使用自相关矩阵的最小特征值 ⁡λmin⁡λ_{min}λmin​ 作为角点响应,更稳定、无需调参 kkk

2.1 应用场景

  • 移动目标跟踪:Shi-Tomasi 的最小特征值度量更稳定,常用作金字塔光流跟踪的初始化点
  • 机器人导航:室内房间角落、门框角点分布稀疏,用少量高质量特征即可定位
  • 图像拼接:特征点质量与分布影响拼接精度,Shi-Tomasi 质量水平可控制点的可靠性

2.2 实现过程

  • 读取与灰度化
  • 直接调用 goodFeaturesToTrack,传入最大角点数、质量水平、最小距离等参数
  • 可选:在每个角点处绘制圆圈以便可视化
import cv2
import numpy as np# 功能:Shi-Tomasi 角点检测并可视化
img = cv2.imread('1.jpeg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 1. 调用 OpenCV Shi-Tomasi
corners = cv2.goodFeaturesToTrack(image=gray,maxCorners=200,qualityLevel=0.01,minDistance=10,blockSize=3
)
corners = np.int0(corners)# 2. 可视化
output = img.copy()
for x, y in corners.reshape(-1, 2):cv2.circle(output, (x, y), 4, (0, 255, 0), -1)cv2.imshow('Shi-Tomasi Corners', output)
cv2.waitKey(0)
cv2.destroyAllWindows()

Shi-Tomasi

关键函数解析:

  • cv2.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, blockSize)
    • maxCorners:返回角点的最大数量
    • qualityLevel:角点质量阈值,相当于最小 λmin⁡/λmaxλ_{min}⁡/λ_{max}λmin⁡/λmax
    • minDistance:角点之间的最小欧氏距离
    • blockSize:计算自相关矩阵的邻域大小

3. 亚像素级角点

在图像金字塔与光流等任务中,亚像素级别的角点位置能显著提升跟踪与配准精度。通过 cornerSubPix 方法,利用灰度图在小窗口内对角点坐标做迭代优化。

3.1 应用场景

  • 立体匹配:亚像素精度可显著提升深度图分辨率
  • 显微镜图像:细胞或晶体内微小角点需精确定位
  • 机械误差测量:高精度角点抠图,辅助工业检测与校准

3.2 实现过程

  • 先用 Shi-Tomasi 得到粗略角点
  • 定义搜索窗口大小与终止条件
  • 调用 cornerSubPix,传入灰度图、初始角点、窗口大小与停止迭代条件
  • 查看亚像素精度坐标
import cv2
import numpy as np# 功能:Shi-Tomasi + 亚像素角点优化
img = cv2.imread('1.jpeg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 1. 原始角点
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
corners = np.float32(corners)# 2. 设置优化参数
winSize = (5, 5)
zeroZone = (-1, -1)
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 40, 0.001)# 3. 亚像素优化
corners_refined = cv2.cornerSubPix(image=gray,corners=corners,winSize=winSize,zeroZone=zeroZone,criteria=criteria
)# 4. 可视化
output = img.copy()
for x, y in corners_refined.reshape(-1, 2):cv2.circle(output, (int(x), int(y)), 3, (255, 0, 0), -1)cv2.imshow('Subpixel Corners', output)
cv2.waitKey(0)
cv2.destroyAllWindows()

subpixel

关键函数解析:

  • cv2.cornerSubPix(image, corners, winSize, zeroZone, criteria)
    • corners:输入初始角点位置
    • winSize:搜索窗口大小
    • zeroZone:窗口中不参与计算的中心区域
    • criteria:迭代终止条件,组合了最大迭代次数与精度阈值

小结

角点作为图像中信息密度最高的特征点,在计算机视觉任务中扮演着至关重要的角色。本文介绍了三种常用的角点检测方法:Harris 算法以响应函数衡量角点强度,适合特征丰富场景;Shi-Tomasi 算法通过最小特征值选择更稳定的角点,更适用于后续跟踪与匹配;而亚像素角点优化则进一步提升了检测精度,满足高精度应用需求。

系列链接

OpenCV计算机视觉实战(1)——计算机视觉简介
OpenCV计算机视觉实战(2)——环境搭建与OpenCV简介
OpenCV计算机视觉实战(3)——计算机图像处理基础
OpenCV计算机视觉实战(4)——计算机视觉核心技术全解析
OpenCV计算机视觉实战(5)——图像基础操作全解析
OpenCV计算机视觉实战(6)——经典计算机视觉算法
OpenCV计算机视觉实战(7)——色彩空间详解
OpenCV计算机视觉实战(8)——图像滤波详解
OpenCV计算机视觉实战(9)——阈值化技术详解
OpenCV计算机视觉实战(10)——形态学操作详解
OpenCV计算机视觉实战(11)——边缘检测详解
OpenCV计算机视觉实战(12)——图像金字塔与特征缩放
OpenCV计算机视觉实战(13)——轮廓检测详解
OpenCV计算机视觉实战(14)——直方图均衡化
OpenCV计算机视觉实战(15)——霍夫变换详解
OpenCV计算机视觉实战(16)——图像分割技术

http://www.dtcms.com/a/577199.html

相关文章:

  • openvela 时钟框架概述
  • 中国室内设计师资格证小企业如何优化网站建设
  • 排序算法稳定性判断
  • 全面详解常见网络协议默认端口号及其应用场景
  • 详解 零拷贝(Zero Copy):mmap、sendfile、DMA gather、splice
  • 学Java第四十二天--------Arrays工具类和Lambda表达式
  • PDF-XChange Editor丨加拿大PDF编辑转换工具
  • 家里的飞牛NAS连接的明明是千兆宽带,异地访问时网速都不对?
  • Eclipse 查找
  • 网站推广计划建设手机网站包括哪些费用
  • 想要导航网站推广怎么做南山区
  • macOS 系统下 Chrome 浏览器安装 HTTPS 证书完整指南
  • HTTP 401 状态码详解:未授权的含义与解决办法
  • Java之lambda表达式
  • JavaSe—Stream流☆
  • 如何用ae做模板下载网站wordpress搭建知识库
  • 网站开发需求清单南昌seo搜索排名
  • N32H高性能32位MCU在具身机器人上的应用
  • 网站广告收费标准电子工程网络通信的专业课
  • 实时将大模型的解决方案转换为随机应变的机器人指令
  • 在 Vue 3 + Vite 项目中使用 Less 实现自适应布局:VW 和 VH 的应用
  • codeforces1914 C~F
  • 海外住宅ip怎么区分干净程度以及怎么选择海外住宅ip
  • 酒店团购的网站建设承德网媒
  • 在网站中动态效果怎么做网站的备案要求
  • 昭和仙君(五十八)标签票据模板服务器端技术——东方仙盟筑基期
  • Dart语言空安全概念与原理详解
  • MongoDB 查询分析
  • 如何在OnePlus手机上删除短信
  • MQTT的QoS2中四次握手与TCP的三次握手、四次挥手的异同