使用opencv中函数实现基于Harris算法的图像角点检测

opencv(python)中Harris角点检测函数

函数原型:

dst = cv.cornerHarris( src, blockSize, ksize, k[, dst[, borderType]] )
src : 原图
blockSize : 检测过程中移动窗口大小
ksize : Soble 滤波器的大小
k : 常数,通常取值范围[0.04,0.16]
对参数有不懂,请参考:Harris角点检测算法讲解及python实现

小例子:

import numpy as np 
import cv2 as cv 

image1 = cv.imread('../qiqiao.jpg')
gray = cv.cvtColor(image1,cv.COLOR_RGB2GRAY)
gray = np.float32(gray)
dst	= cv.cornerHarris(gray, blockSize=10, ksize=3, k=0.04)
# 使角点更大
dst = cv.dilate(dst,None)
# 标记角点为红色
image1[dst>0.01*dst.max()]=[0,0,255]

cv.imshow('result',image1)
cv.imwrite('out.jpg',image1)
cv.waitKey(0)
cv.destroyAllWindows()

实验结果:

原图:

原图

Harris角点检测算法结果:

Harris角点检测算法结果
点个赞再走啊,帅哥!

原文地址:https://www.cnblogs.com/wojianxin/p/12576114.html