• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: 图像匹配  

资源简介

在matlab平台上实现基于小波变化的图像匹配配准,小波变换在图像匹配领域应用较少,不过它的匹配率高,精度准确效果还是十分明显的,唯一不足就是匹配时间较长,还有待读者对之改进~

资源截图

代码片段和文件信息

function testpipei_1()

%使用说明:此函数为单独使用,不具有交互性,因此必须在E盘下存在名为:P1010813.jpg的图像,
%在工作区中(此函数所在位置)必须存在名为afterCut.jpg的图像。afterCut.jpg最好是从
%P1010813.jpg的图像上剪裁下来的,P1010813.jpg图像不要太大,最好为500*500以内的,否则
%计算时间会很长

web -browser http://www.ilovematlab.cn/thread-10019-1-1.html
yuantu=imread(‘256graycup192.jpg‘);%加载原图象
pipeitu=imread(‘256graytempcup192.jpg‘);%加载匹配图象
%subplot(221)imshow(yuantu)
%subplot(222)imshow(pipeitu)
%yuantu2gray=rgb2gray(yuantu);%将原图象转换为灰度图象
%pipeitu2gray=rgb2gray(pipeitu);%将匹配图象转换为灰度图象
yuantu=double(yuantu);
pipeitu=double(pipeitu);
[pipei_heightpipei_width]=size(pipeitu);%获取匹配图象的大小尺寸,其值为[长,宽]将匹配图象的长度值赋给pipei_width将匹配图象的宽度值赋给pipei_lenth
[yuantu_heightyuantu_width]=size(yuantu);
%wavelet decomposition
[yuantu_cyuantu_s]=wavedec2(yuantu2‘db1‘);
[pipeitu_cpipeitu_s]=wavedec2(pipeitu2‘db1‘);

yuantu_A1=appcoef2(yuantu_cyuantu_s‘db1‘1);
pipeitu_A1=appcoef2(pipeitu_cpipeitu_s‘db1‘1);
%subplot(221)imshow(uint8(yuantu_A1));
%subplot(222)imshow(uint8(pipeitu_A1));
yuantu_A2=appcoef2(yuantu_cyuantu_s‘db1‘2);
pipeitu_A2=appcoef2(pipeitu_cpipeitu_s‘db1‘2);
%subplot(221)imshow(uint8(yuantu_A2));
%subplot(222)imshow(uint8(pipeitu_A2));

[pipei_height1pipei_width1]=size(pipeitu_A1);%获取匹配图象的大小尺寸,其值为[长,宽]将匹配图象的长度值赋给pipei_width将匹配图象的宽度值赋给pipei_lenth
[yuantu_height1yuantu_width1]=size(yuantu_A1);
[pipei_height2pipei_width2]=size(pipeitu_A2);%获取匹配图象的大小尺寸,其值为[长,宽]将匹配图象的长度值赋给pipei_width将匹配图象的宽度值赋给pipei_lenth
[yuantu_height2yuantu_width2]=size(yuantu_A2);

subplot(221)imshow(uint8(yuantu_A2));
hold on;
tic
for i=1:yuantu_height2-pipei_height2
  for j=1:yuantu_width2-pipei_width2
    temp_picture2=imcrop(yuantu_A2[jipipei_width2-1pipei_height2-1]);
      %剪切图像
    r=corr2(temp_picture2pipeitu_A2);
        if r<0.9
            continue;
        elseif r>0.9
           plot(j:j+pipei_width2i‘r‘);
           plot(j:j+pipei_width2i+pipei_height2‘r‘);
           plot(ji:i+pipei_height2‘r‘);
           plot(j+pipei_width2i:i+pipei_height2‘r‘);
       end
   end
end
subplot(222)imshow(uint8(yuantu_A1));
hold on;
for p=i:yuantu_height1-pipei_height1
     for q=j:yuantu_width1-pipei_width1
       temp_picture1=imcrop(yuantu_A1[qppipei_width1-1pipei_height1-1]);
        %剪切图像
        r=corr2(temp_picture1pipeitu_A1);
          if r<0.9
            continue;
        elseif r>0.9
            plot(q:q+pipei_width1p‘r‘);
            plot(q:q+pipei_width1p+pipei_height1‘g‘);
            plot(qp:p+pipei_height1‘b‘);
            plot(q+pipei_width1p:p+pipei_height1‘r‘);
        end
    end
end
subplot(223)imshow(uint8(yuantu));
hold on;
for u=p:yuantu_height-pipei_height
     for v=q:yuantu_width-pipei_width
       temp_picture=imcrop(yuantu[vupipei_width-1pipei_height-1]);
        %剪切图像
        r=corr2(temp_picturepipeitu);
          if r<0.9
            continue;
        elseif r>0.9
            plot(v:v+pipei_widthu‘r‘);
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3447  2008-05-21 10:29  beifen_pipei_wavelet.m

     文件        122  2008-05-14 18:20  Matlab中文论坛--助努力的人完成毕业设计.url

     文件       3434  2008-05-15 08:26  使用帮助:新手必看.htm

----------- ---------  ---------- -----  ----

                 7003                    3


评论

共有 条评论