图像特征
特征就是图像的重要区域, 该区域具有独特性且易于识别。
特征检测就是找到图像的重要区域, 特征检测算法一般会涉及图像的角点、边和斑点。
角点检测
角点的特性:向任何方向的移动变化都很大。
harris检测
cv2.cornerHarris(src, blockSize, ksize, k, dst=None, borderType=None)
src: single channel 8 bit or floating point img,
blockSize: 角点检测中要考虑的领域大小
ksize: Sobel使用的窗口大小
k - Harris角点检测方程中的自由参数, 范围[0.04, 0.06]
代码
import cv2
import numpy as np
src = cv2.imread(r'F:\OPENCV\Opencv\corner.png')
src = cv2.medianBlur(src, 5)
gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
gray = np.uint8(gray)
dst = cv2.cornerHarris(gray, 2, 3, 0.05)
dst = cv2.dilate(dst, None)
img1 = src.copy()
img1[dst > 0.01 * dst.max()] = [0, 0, 255]
print(dst > 0.01 * dst.max())
cv2.namedWindow('dst', cv2.WINDOW_NORMAL)
cv2.imshow('dst', img1)
v2.waitKey()
cv2.destroyAllWindows()
结果显示
原始图像