⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 q144.m

📁 text within noisy code extraction
💻 M
字号:
%question1(1)
clear;
OriginalPicture1=imread('RGB1.tif','tif');
OriginalPicture1=double(OriginalPicture1);
P1=RtoY(OriginalPicture1);
P1(:,:,2)=0;P1(:,:,3)=0;
RGB1=YtoR(P1);
figure;
image(RGB1/265);

OriginalPicture2=imread('RGB2.tif','tif');
OriginalPicture2=double(OriginalPicture2);
P2=RtoY(OriginalPicture2);
P2(:,:,2)=0;P2(:,:,3)=0;
RGB2=YtoR(P2);
figure;
image(RGB2/256);

%question1(2)
sad=sum(sum(abs(P1(:,:,1)-P2(:,:,1))))
%question1(5)
XSize=size(P1,1);
YSize=size(P1,2);
floatpoint=0;
predictionYbr=P1;
dm=128;
final_x=0;final_y=0;
positionsearch=[-1 1;-1 -1;1 1;1 -1;0 0;0 -1;0 1;-1 0;1 0];
for i=0:XSize/16-1;
    for j=0:YSize/16-1
        s=dm/2;
        SADMIN=inf;
        m=i*16;
        n=j*16;
       if s>=1
        for k=1:5
      X=min(max(m+s*positionsearch(k,1),0),XSize-16);
      Y=min(max(n+s*positionsearch(k,2),0),YSize-16);
      SAD=sum(sum(sum(abs(P1(i*16+1:i*16+16,j*16+1:j*16+16,1)-P2(X+1:X+16,Y+1:Y+16,1)))));
      floatpoint=floatpoint+1;
        if SAD< SADMIN
           SADMIN=SAD;
           center_x=X;
           center_y=Y;
        end
        end
        if s~=1
        m=center_x;
        n=center_y;
        end
        s=s/2;
        end   
        %when s=1
          SADMIN1=inf;
        %center
        if center_x==min(max(m+2*s*positionsearch(5,1),0),XSize-16)&center_y==min(max(n+2*s*positionsearch(5,2),0),YSize-16)
           final_x=X;
           final_y=Y;
           predictionYbr(final_x+1:final_x+16,final_y+1:final_y+16,1)=P1(i*16+1:i*16+16,j*16+1:j*16+16,1);
       end
        %topleft
      
        if center_x==min(max(m+2*s*positionsearch(2,1),0),XSize-16)&center_y==min(max(n+2*s*positionsearch(2,2),0),YSize-16)
        for k=1:5
      X=min(max(center_x+1*positionsearch(k,1),0),XSize-16);
      Y=min(max(center_y+1*positionsearch(k,2),0),YSize-16);
      SAD1=sum(sum(sum(abs(P1(i*16+1:i*16+16,j*16+1:j*16+16,1)-P2(X+1:X+16,Y+1:Y+16,1)))));
      floatpoint=floatpoint+1;
        if SAD1< SADMIN1
           SADMIN1=SAD1;
           final_x=X;
           final_y=Y;
        end
        end
        end 
          predictionYbr(final_x+1:final_x+16,final_y+1:final_y+16,1)=P1(i*16+1:i*16+16,j*16+1:j*16+16,1);       
          %buttomright
          if center_x==min(max(m+2*s*positionsearch(3,1),0),XSize-16)&center_y==min(max(n+2*s*positionsearch(3,2),0),YSize-16)
        for k=1:5
      X=min(max(center_x+1*positionsearch(k,1),0),XSize-16);
      Y=min(max(center_y+1*positionsearch(k,2),0),YSize-16);
      SAD1=sum(sum(sum(abs(P1(i*16+1:i*16+16,j*16+1:j*16+16,1)-P2(X+1:X+16,Y+1:Y+16,1)))));
       floatpoint=floatpoint+1;
        if SAD1< SADMIN1
           SADMIN1=SAD1;
           final_x=X;
           final_y=Y;
           end
           end
           end 
          predictionYbr(final_x+1:final_x+16,final_y+1:final_y+16,1)=P1(i*16+1:i*16+16,j*16+1:j*16+16,1);         
          %buttomleft
          if center_x==min(max(m+2*s*positionsearch(1,1),0),XSize-16)&center_y==min(max(n+2*s*positionsearch(1,2),0),YSize-16)
        for k=5:9
      X=min(max(center_x+1*positionsearch(k,1),0),XSize-16);
      Y=min(max(center_y+1*positionsearch(k,2),0),YSize-16);
      SAD1=sum(sum(sum(abs(P1(i*16+1:i*16+16,j*16+1:j*16+16,1)-P2(X+1:X+16,Y+1:Y+16,1)))));
       floatpoint=floatpoint+1;
        if SAD1< SADMIN1
           SADMIN1=SAD1;
           final_x=X;
           final_y=Y;
           end
           end
           end
          predictionYbr(final_x+1:final_x+16,final_y+1:final_y+16,1)=P1(i*16+1:i*16+16,j*16+1:j*16+16,1);  
          %topright
          if center_x==min(max(m+2*s*positionsearch(4,1),0),XSize-16)&center_y==min(max(n+2*s*positionsearch(4,2),0),YSize-16)
        for k=5:9
      X=min(max(center_x+1*positionsearch(k,1),0),XSize-16);
      Y=min(max(center_y+1*positionsearch(k,2),0),YSize-16);
      SAD1=sum(sum(sum(abs(P1(i*16+1:i*16+16,j*16+1:j*16+16,1)-P2(X+1:X+16,Y+1:Y+16,1)))));
       floatpoint=floatpoint+1;
        if SAD1< SADMIN1
           SADMIN1=SAD1;
           final_x=X;
           final_y=Y;
           end
           end
           end
          predictionYbr(final_x+1:final_x+16,final_y+1:final_y+16,1)=P1(i*16+1:i*16+16,j*16+1:j*16+16,1);
end
end
        RGB5=YtoR(predictionYbr);
        RGB5(:,:,1)=min(255,max(0,RGB5(:,:,1)));
        RGB5(:,:,2)=min(255,max(0,RGB5(:,:,2)));
        RGB5(:,:,3)=min(255,max(0,RGB5(:,:,3)));
        figure;
        image(RGB5/256)
        sadtotal2=sum(sum(abs(predictionYbr(:,:,1)-P2(:,:,1))))
        %question1(6)
        floatpoint=floatpoint*16^2*2
          
          
          
      
       
       
       
       
      
          
          
      
      
      

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -