資源簡介
更深入理解模板匹配技術,能夠獨立根據已知算法(相關匹配(Correlation Matching)、基于Hausdorff距離匹配方法 及考慮對場景圖象距離變換(Distance Transform)的Hausdorff距離匹配方法)在MATLAB下編程實現相關的模板匹配技術,并通過結果,對比不同算法的優缺點。
1)利用①相關匹配(Correlation Matching)、②基于Hausdorff距離匹配方法 及③考慮對場景圖象距離變換(Distance Transform)的Hausdorff距離匹配方法,實現模板目標在場景圖象中的定位。
2)對于每個模板分別給出最后的目標定位位置坐標(左下角坐標為(0,0)),對于方法①與②,比較定位精度的偏差;對于方法②與③比較定位效率(時間)。
代碼片段和文件信息
clear
clc
Background_Source=imread(‘Scene.jpg‘);
Template_Source=imread(‘Template_1.jpg‘);
if?size(Background_Source3)==3
????Template=rgb2gray(Background_Source);
????Template=double(Template);
else
????Template=double(Template_Source);
end
if?size(Template_Source3)==3
????Background=rgb2gray(Template_Source);
????Background=double(Background);
else
????Background=double(Background_Source);
end
[Bk_r?Bk_c]=size(Background);
[Te_r?Te_c]=size(Template);
%實現公式運算
for?i=1:(Bk_r-Te_r+1)
????for?j=1:(Bk_c-Te_c+1)
????????A=Background(i:i+Te_r-1j:j+Te_c-1).*Template;
????????B=sum(A(:));
????????C=Background(i:i+Te_r-1j:j+Te_c-1).*Background(i:i+Te_r-1j:j+Te_c-1);
????????D=sum(C(:));
????????E=Template.*Template;
????????F=sum(E(:));
????????Result(ij)=B/sqrt(D*F);
????end
end
[C_maximax]=max(Result(:));
[y?x]=ind2sub(size(Result)imax);%函數可以用來把矩陣元素的index轉換成對應的下標,并輸出坐標
y1=Bk_r-Te_r-y+1
x1=x-1
figure;
subplot(132);imshow(Background_Source);
title(‘原始圖像‘);
subplot(131);imshow(Template_Source);
title(‘模板圖像‘);
subplot(133);imshow(Background_Source);
title(‘匹配結果‘);
rectangle(‘Position‘[xysize(Template2)size(Template1)]‘EdgeColor‘‘r‘);?
- 上一篇:QPSK的matlab
- 下一篇:OSELM代碼matlab實現
評論
共有 條評論