資源簡介
自己用matlab編寫的一個基于相關的模板匹配程序,能夠實現目表匹配
代碼片段和文件信息
function???imcorr(OrigImgsubImg)
[height1width1]?=?size(OrigImg);
[height2width2]?=?size(subImg);
Icorr?=?zeros(height1-height2+1width1-width2+1);??%響應圖像的空間
VecSubImg?=?double(subImg(:));??%按列存儲為向量
normSubImg?=?norm(VecSubImg);??%模式圖像對應向量的模
for?i?=?1:height1-height2+1
????for?j?=?1:width1-width2+1
????????SubMat?=?OrigImg(i:i+height2-1j:j+width2-1);
????????VecSubMat?=?double(SubMat(:));??%按列存儲為向量
?????????%計算當前位置的相關
????????Icorr(ij)?=?VecSubMat‘*VecSubImg/(norm(VecSubMat)*normSubImg+eps);
????end
end
%找最大相應位置
[iMaxResjMaxRes]?=?find(Icorr?==?max(Icorr(:)));
figure(1);
imshow(OrigImg);
hold?on
for?i?=1:length(iMaxRes)
????plot(jMaxRes(i)iMaxRes(i)‘*‘);%繪制最大響應點
????%用矩形框標記處匹配區域
????plot([jMaxRes(i)jMaxRes(i)+width2][iMaxRes(i)iMaxRes(i)]);
????plot([jMaxRes(i)+width2jMaxRes(i)+width2][iMaxRes(i)iMaxRes(i)+height2]);
????plot([jMaxRes(i)jMaxRes(i)+width2][iMaxRes(i)+height2-1iMaxRes(i)+height2]);
????plot([jMaxRes(i)jMaxRes(i)][iMaxRes(i)iMaxRes(i)+height2]);
end
????????
??????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1120??2010-05-30?05:04??imcorr.m
-----------?---------??----------?-----??----
?????????????????1120????????????????????1
- 上一篇:matlab優化工具箱講解
- 下一篇:讀取txt文件內容matlab代碼實現
評論
共有 條評論