Harris角点检测(python-opencv)

Harris角点检测(python-opencv)

1. 图像特征

图像的特征我认为可以分为基于一幅图像的平面,边缘和角点。
图像特征

2.Harris角点检测

图像是N*M维度的矩阵,选择一个合适的窗口滑过图像的每个区域,然后计算所有差值的总和。
数学公式为:
harris角点检测数学推导式
其中最关键的(判断是什么特征):
在这里插入图片描述
详细的理论(写的不错):
https://blog.csdn.net/xw20084898/article/details/21180729

3.代码

import cv2
import numpy as np
filename = './lou.jpg'
img = cv2.imread(filename)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #灰度化
gray = np.float32(gray) # Int型编程float32的类型
dst= cv2.cornerHarris(gray,2,3,0.04)
'''
解释一下Harris算法的参数:
    src       :传入的灰度图
    blockSize :角点检测中要考虑的邻域的大小
    ksize     :Sobel求导中使用的窗口大小
    k         :Harris角点检测方程中的自由参数,取值参数为[0.04,0.06]。
'''
det = cv2.dilate(dst,None)
'''
取图像超过一个最优化的阈值的部分,阈值根据图像会有所不同
'''
img[dst > 0.01*dst.max()]=[0,0,255] #BGR通道(红色)
'''
这是利用布尔类型索引直接将大于某阈值的像素点标记为红色(找到的角点)
'''
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

4.检测原图和检测结果

原图
检测结果

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勇敢牛牛@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值