注册 登录
编程论坛 Matlab

简单的模板匹配法matlab怎么写

monicg 发布于 2007-11-28 20:31, 3327 次点击
例如在图像中生成一个矩形,然后用模板匹配法SSDA找出矩形的位置

我写了下,总是不对,想看下有没有这方面的例子
1 回复
#2
yayadeng2008-06-04 10:41
回复 1# monicg 的帖子
clear
img=imread('backgrand.jpg');      %读入集体照图像的数据阵
img1=imread('model.jpg');           %读入所需匹配的图像数据阵
siz=size(img);
siz1=size(img1);
cha1=5000;
for i=1:siz(1)-siz1(1)+1
    for j=1:siz(2)-siz1(2)+1
        cha=sum(sum(abs(img(i:i+siz1(1)-1,j:j+siz1(2)-1,1)-img1(:,:,1))));
        if cha<cha1
            cha1=cha;
            ii=i;
            jj=j;
        end
    end
end
img(ii:ii+siz1(1)-1,jj:jj+siz1(2)-1,1)=img(ii:ii+siz1(1)-1,jj:jj+siz1(2)-1,1)-60;
img(ii:ii+siz1(1)-1,jj:jj+siz1(2)-1,2)=img(ii:ii+siz1(1)-1,jj:jj+siz1(2)-1,2)-60;
img(ii:ii+siz1(1)-1,jj:jj+siz1(2)-1,3)=img(ii:ii+siz1(1)-1,jj:jj+siz1(2)-1,3)-60;
ceni=round(ii+siz1(1)/2-1/2);
cenj=round(jj+siz1(2)/2-1/2);
img(ceni-1:ceni+1,cenj-1:cenj+1,1)=256;
img(ceni-1:ceni+1,cenj-1:cenj+1,2)=0;
img(ceni-1:ceni+1,cenj-1:cenj+1,3)=0;
imshow(img);
1