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

📄 hang.m

📁 用MATLAB编写的图像伸缩变化的源码。
💻 M
字号:

RGB=imread('000000.jpg');%读图

for k=1:10
    I= double(rgb2gray(RGB));

    h = fspecial('sobel');
    gx=imfilter(I,h,'replicate'); 
    gy=imfilter(I,h,'replicate'); 

    eI=abs(gx)+abs(gy);

    Mh=eI;
    [n,m]=size(I);
    for i=1:n
        for j=2:m
                if i==1
                    Mh(i,j)=eI(i,j)+min([Mh(i,j-1),Mh(i+1,j-1)]);
                elseif i==n
                    Mh(i,j)=eI(i,j)+min([Mh(i-1,j-1),Mh(i,j-1)]);
                else
                    Mh(i,j)=eI(i,j)+min([Mh(i-1,j-1),Mh(i,j-1),Mh(i+1,j-1)]);
                end
        end
    end


    [c,I]=min([Mh(:,m)]);
    A(1,m)=I;
    for i=m-1:-1:1
        if I==1
           [c,I1]=min([Mh(I,i),Mh(I+1,i)]);
           I=I+I1-1;
        elseif I==n
           [c,I2]=min([Mh(I-1,i),Mh(I,i)]);
           I=I+I2-2;
        else
           [c,I3]=min([Mh(I-1,i),Mh(I,i),Mh(I+1,i)]);
           I=I+I3-2;
        end
        A(1,i)=I;
    end
    for i=1:m
        RGB(A(1,i),i,1)=255;
        RGB(A(1,i),i,2)=0;          
        RGB(A(1,i),i,3)=0;
    end
   imshow(RGB);
    for i=1:m
        RGB(A(1,i):n-1,i,1)=RGB(A(1,i)+1:n,i,1);
        RGB(A(1,i):n-1,i,2)=RGB(A(1,i)+1:n,i,2);
        RGB(A(1,i):n-1,i,3)=RGB(A(1,i)+1:n,i,3);
    end
    RGB=RGB(1:n-1,:,:);
    figure,imshow(RGB); 
end

⌨️ 快捷键说明

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