图像特征概述
特征提取算法
特征点要求:
几何变换不变性+光照变换不变性+抗噪声
Harris角点检测算法
什么是角点?
E,F中的角我们通常称作角点(corner points),他们具有以下特征:
- 轮廓之间的交点;
- 对于同一场景,即使视角发生变化,通常具备稳定性质的特征;
- 该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化;
代码实现
import cv2
import numpy as np
# 读入图像并转化为float类型,用于传递给harris函数
filename = '/Users/longfeifei/PycharmProjects/ngmachine/pic/wgate.jpg'
img = cv2.imread(filename)
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray_img = np.float32(gray_img)
# 对图像执行harris
Harris_detector = cv2.cornerHarris(gray_img, 2, 3, 0.04)
# 腐蚀harris结果
dst = cv2.dilate(Harris_detector, None)
# 设置阈值
thres = 0.01 * dst.max()
img[dst > thres] = [0, 255, 0]
cv2.imshow('show', img)
cv2.waitKey()
课后作业
- 提取图片的特征点
输入图片 | harris特征点 |
---|---|
![]() |
![]() |
![]() |
![]() |