OpenCV
Harris角点检测API
前言
例如:随着人工智能的不断发展,计算机视觉这门技术也越来越重要,很多人都开启了学习计算机视觉,本文就介绍了计算机视觉的基础内容。
一、什么是特征?
图像特征就是指有意义的图像区域,具有独特性、易于识别性,比如角点、斑点以及高密度区
二、角点?
- 在特征中最重要的是角点
- 灰度梯度的最大值对应的像素
- 两条线的交点
- 极值点(一阶导数最大值,但二阶导数为0)
1.Harris角点
Harris点:检测窗口判断周围像素的变化
- 光滑地区,无论向哪里移动,衡量系数不变
- 边缘地址,垂直边缘移动时,衡量系数变化剧烈
- 在交点处,往哪个方向移动,衡量系数都变化剧烈
Harris角点检测API:
- cornerHarris(img,dst, blockSize, ksize, k)
- blockSize: 检测窗口大小
- ksize: Sobel的卷积核
- k: 权重系数,经验值,一般取 0.02~0.04之间
二、使用步骤
1.引入库
代码如下(示例):
import cv2
import numpy as np
2.读入数据
代码如下(示例):
blockSize = 2
ksize = 3
k = 0.04
img = cv2.imread('./chess.png')
sc_img = cv2.imread('chess.png',cv2.IMREAD_GRAYSCALE)
#灰度化
sc_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#Harris角点检测
dst = cv2.cornerHarris(sc_img, blockSize, ksize, k) #该函数的源矩阵(第一个参数)必须是单通道图像
#Harris角点展示
img[dst>0.01*dst.max()] = [0,0,255]
cv2.imshow('harris', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
该处使用的url网络请求的数据。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Harris的使用,而OpenCV提供了大量能使我们快速便捷地处理图片的函数和方法。