目录
局部图像描述子
一、Harris角点检测
1、Harris角点检测点基本思想
我们对图像角点的判断,假定一个正方形小窗口,窗口向任意方向的移动都导致图像灰度的明显变化,则代表该区域存在角点。如下图所示:
当正方形小窗口位于平坦区域时,任意方向移动,都无灰度变化。
当正方形小窗口位于边缘区域时,沿着边缘方向移动,无灰度变化。
当正方形小窗口位于角点区域时,沿任何方向移动,有明显的灰度变化。
2、Harris角点检测点数学表达式
如图所示:
通过M的两个特征值的大小对图像点进行分类,根据角点响应函数R,R只与M的特征值有关。
3、Harris角点检测编码
1、角点检测:
from pylab import *
from PIL import Image
from PCV.localdescriptors import harris
im=array(Image.open('21.jpg').convert('L'))
harrisim = harris.compute_harris_response(im)
harrisiml = 255-harrisim
figure()
gray()
subplot(141)
imshow(harrisiml)
print (harrisiml.shape)
axis('off')
axis('equal')
threshold = [0.05,0.08,0.2]
for i,thres in enumerate(threshold):
filtered_coords = harris.get_harris_points(harrisim,6,thres)
subplot(1,4,i+2)
imshow(im)
print(im.shape)
plot([p[1] for p in filtered_coords],[p[0] for p in filtered_coords],'*')
axis('off')
show()
2、编码结果:
3、对应点连接编码:
from pylab import *
from PIL import Image
from PCV.localdescriptors import harris
from PCV.tools.imtools import imresize
"""
This is the Harris point matching example in Figure 2-2.
"""
im1 = array(Image.open("112.jpg").convert("L"))
im2 = array(Image.open("113.jpg").convert("L"))
# resize加快匹配速度
im1 = imresiz