欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cv2角点检测cornerHarris

程序员文章站 2022-06-11 18:08:38
...

本篇博客主要介绍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()

测试图片:

cv2角点检测cornerHarris

结果:

cv2角点检测cornerHarris

cv2角点检测cornerHarris