一、应用场景
1.图像搜索,以图搜图。
2.拼图游戏。
3.图像拼接,将两张有关联的图拼接在一起。
二、基础概念
2.1 什么是图像特征?
图像特征就是指有意义的图像区域,具有独特性、易于识别性,比如角点、斑点以及高密度区。
从上图我们可以发现:
A、B两图我们很难找到具体定位;
C、D两图可以找到一些相似区域,但不太容易确定;
E、F两图则很容易确定其定位,即特征信息丰富。
由此,我们可以知道角点是非常重要的特征信息。
2.2 角点
(1)在特征中最重要的是角点;
(2)灰度梯度的最大值对应的像素点;
(3)两条线的交点;
(4)极值点(一阶导数最大值,但二阶导数为0)。
三、特征检测
3.1 角点检测
3.1.1 Harris角点检测
- 光滑地区,无论向哪个移动,衡量系数不变
- 边缘地区,垂直边缘移动时,衡量系统剧烈变化
- 在交点处,往那个方向移动,衡量系统都发生剧烈变化
Harris角点检测API
- cornerHarrris(img,dst,blockSize,ksize,k)
- blockSize: 检测窗口大小
- ksize: Sobel的卷积核
- k 权重系数,经验值,一般取0.02-0.04之间
import cv2
import numpy as np
# 读取图片
img = cv2.imread('./chess.png')
# 灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2