高要网站建设公司,建设教育协会官方网站,网站维护属于什么部门,江苏网站建设流程最近用到#xff1a;Harris检测图像中边缘处的特征点#xff0c;并且需要两张图特征点匹配起来。Harris只是一个角点检测的算法#xff0c;最终只得到特征点坐标#xff0c;想要匹配需要描述#xff0c;而Harris是单尺度的#xff0c;自己写描述函数又有些麻烦。找到MATL…    最近用到Harris检测图像中边缘处的特征点并且需要两张图特征点匹配起来。Harris只是一个角点检测的算法最终只得到特征点坐标想要匹配需要描述而Harris是单尺度的自己写描述函数又有些麻烦。找到MATLAB和opencv都有集成的函数 
MATLAB版本通过调节参数效果还可以存在一定的误匹配。 
clc,clear
%读取、灰度化、显示
I1 imread(sample_01.jpg);  
I1rgb2gray(I1);  %把RGB图像变成灰度图像
% figure
% imshow(I1)I2 imread(sample_10.jpg);   
I2rgb2gray(I2);
% figure
% imshow(I2)%寻找特征点  
points1  detectHarrisFeatures(I1,MinQuality,0.002);  %读取特征点,MinQuality,0.005
% points2  detectSURFFeatures(I2);   
points2  detectHarrisFeatures(I2,MinQuality,0.002); figure
imshow(I1);
hold on;
plot(points1);figure
imshow(I2);
hold on;
plot(points2);%Extract the features.计算描述向量  
[f1, vpts1]  extractFeatures(I1, points1);  
[f2, vpts2]  extractFeatures(I2, points2);  %进行匹配  
indexPairs  matchFeatures(f1, f2,Method,NearestNeighborSymmetric,MatchThreshold,20) ;  
%用Method,NearestNeighborSymmetric阈值调节用MatchThreshold,范围0-100表示选择最强的匹配的百分比越大匹配点越多
%用Method,NearestNeighborRatio阈值调节MaxRatio,0.7范围0-1默认0.6较大该值获得较多匹配
matched_pts1  vpts1(indexPairs(:, 1));
matched_pts2  vpts2(indexPairs(:, 2));resultpairs1  matched_pts1.Location; %存储匹配点坐标
resultpairs2  matched_pts2.Location;%显示匹配
figure(name,匹配后的图像); 
showMatchedFeatures(I1,I2,matched_pts1,matched_pts2,montage);  
legend(matched points 1,matched points 2);  
OPENCV版本误匹配实在太多没找到具体原因选择的匹配方法是BruteForce。优点是opencv内部有Harris的改进版本goodFeaturesToTrack可以进行Shi-Tomasi角点检测能够设置角点数目角点之间的最小距离避免Harris点过于密集重复。