cv2角点检测cornerHarris

本篇博客主要介绍cv2模块中的角点检测。

cv2.cornerHarris(src, blockSize, ksize, k, dst=None, borderType=None)

src:数据类型为 float32 的输入图像

blockSize:角点检测中考虑的区域大小

ksize:Sobel求导中使用的窗口大小

k:Harris 角点检测方程中的自由参数,取值参数为 [0.04 0.06]

dst:输出图像

borderType:边界的类型

示例代码:

# encoding:utf-8
import cv2
import numpy as np

filename = '../data/chessboard.png'

img = cv2.imread(filename)
img = cv2.resize(img, (640, 480))

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)

# 输入图像必须是float32, 最后一个参数在 0.04 到 0.05 之间
dst = cv2.cornerHarris(gray, 2, 3, 0.04)
cv2.imshow('dst', dst)
dst = cv2.dilate(dst, None)

img[dst > 0.01 * dst.max()] = [0, 0, 255]
cv2.imshow('img', img)
cv2.imshow('dst2', dst)

cv2.waitKey(0)
cv2.destroyAllWindows()

测试图片:

结果:

猜你喜欢

转载自blog.csdn.net/github_39611196/article/details/81143128