OpenCV|图像特征-harris角点检测

cv2.cornerHarris()

  • img:数据类型为float32的输入图像
  • blockSize: 角点检测中指定区域的大小
  • ksize: sobel求导中使用的窗口大小
  • k:取值参数为[0.04,0.06]

OpenCV|图像特征-harris角点检测_第1张图片

chessboard.jpg

import cv2
import numpy as np
img = cv2.imread('chessboard.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('dest.shape:',dst.shape)

输出结果:

img.shape (512, 512, 3)
dest.shape: (512, 512)
img[dst>0.01*dst.max()]=[0,0,255]
cv2.imshow('dst',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

OpenCV|图像特征-harris角点检测_第2张图片

ps:如果想改变检测角点范围的大小,可以改变参数0.01,变大则会检测的点会少。

你可能感兴趣的:(opencv,计算机视觉,人工智能)