hellou

opencv学习笔记(十二)

harris角点检测:
复制代码
#角点检测

import cv2
import numpy as np

"""cv2.cornerHarris()
    img:数据类型为float32
    bolckSize:角点检测中指定区域的大小
    ksize:Sobel求导中使用的窗口大小,一般为3
    K:取值参数为[0.04,0.06]"""

img = cv2.imread('C:/Users/hellou/Desktop/house.jpg')
print('img.shape',img.shape)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
dst = cv2.cornerHarris(gray, 2, 3, 0.04)
print('dst.shape',dst.shape)

img[dst>0.01*dst.max()]=[0,0,255]#若大于max值的1%就认为是角点,且用[0, 0, 255]表示,即用红色表示
cv2.imshow('dst',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

res = np.hstack((img,img))
cv2.imshow('res',res)
cv2.waitKey(0)
cv2.destroyAllWindows()
复制代码

除了Harris角点检测,OpenCV还提供了其他一些角点检测算法,如Shi-Tomasi角点检测(cv2.goodFeaturesToTrack())和FAST角点检测(cv2.FastFeatureDetector_create())。

  1. Harris 角点检测算法:

    • 优点:简单、快速,对旋转和尺度变化具有一定的鲁棒性。
    • 缺点:对于强烈变换的图像(如平移和仿射变换)不太鲁棒。
  2. Shi-Tomasi 角点检测算法:

    • 优点:对于角点的定位更准确,比 Harris 角点检测算法更稳定。
    • 缺点:相对较慢,无法提供角点的角度信息。
  3. FAST 角点检测算法:

    • 优点:非常快速,适用于实时应用。
    • 缺点:对于噪声敏感,可能产生大量的假阳性。
  4. BRIEF 描述符配对算法:

    • 优点:快速,适用于实时应用。
    • 缺点:对于旋转和尺度变化敏感,对光照变化不鲁棒。
  5. ORB 描述符配对算法:

    • 优点:结合了 FAST 角点检测和 BRIEF 描述符,具有较好的性能。
    • 缺点:对于光照变化和尺度变化不够鲁棒。
  6. SIFT 角点检测和描述符配对算法:

    • 优点:对于光照变化、旋转和尺度变化具有很高的鲁棒性。
    • 缺点:相对较慢,可能受到专利限制。
  7. SURF 角点检测和描述符配对算法:

    • 优点:对于光照变化、旋转和尺度变化具有较高的鲁棒性。
    • 缺点:相对较慢,可能受到专利限制。
  8. KAZE 角点检测和描述符配对算法:

    • 优点:对于光照变化、旋转和尺度变化具有较高的鲁棒性。
    • 缺点:相对较慢。

posted on   云上u  阅读(23)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示