OpenCVOpenCv

计算机视觉实战(十)图像特征harris角点检测(附完整代码)

2020-01-12  本文已影响0人  小小何先生

  角点检测的基本原理就是:在角点处画一个框,当这个框无论上下左右移动时像素点变化迅速。因为在一块平滑的区域,没有什么剧烈变化,如下图所示:

角点检测示意图

  目前的角点检测算法可归纳为3类:

  1. 基于灰度图像的角点检测;
  2. 基于二值图像的角点检测;
  3. 基于轮廓曲线的角点检测。

  基本原理:

image image image image

依据lambad 1,lambad 2的大小不一样,我们可以判断是否是边界,或者角点。

image

那是否有这样一个值来计算角点呢,而不是看两个lambad:

image

  OpenCv中角点检测函数为cv2.cornerHarris()其参数设置为:

  Python实现结果如下所示:

import cv2
import numpy as np

img = cv2.imread('test_1.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 ('dst.shape:',dst.shape)

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

  结果显示如下所示:

角点检测结果图

完整代码后台回复:图像特征harris角点检测 即可获得链接。

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

上一篇下一篇

猜你喜欢

热点阅读