在经典的图像配准算法中,其大致流程一般如下所示:
所以,其第一步一般是进行特征点检测,而特征点检测又分为两种类型,一种是基于图像灰度值的,一种是基于图像特征的。
1.harris角点检测
原理:角点是在各个方向变化都很明显,计算每一个像素点的得分R,然后给其设定一个阈值进行判断其是否为角点。
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread("C:\\Users\\Acer\\Desktop\\mp\\2.png")
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray=np.float32(gray)
#cv2.cornerHarris参数:
#img- 数据类型为float32的输入图像
#blocksize -角点检测中要考虑的邻域大小
#ksize -sobel求导中使用的窗口大小
#k -Harris角点检测方程中的自由参数,取值参数为[0.04,0.06]
dst=cv2.cornerHarris(gray,2,3,0.05)
#使标注点膨胀
dst=cv2.dilate(dst,None)
img[dst>0.01*dst.max()]=[0,0,255]
cv2.imshow('dst',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.SIFT特征检测(尺度不变特征变换)