matlab图像翻转

2019-09-30  本文已影响0人  萍水间人

实验1.1的代码,写的太垃圾了,毕竟不是很熟悉matlab
中间的某些部分都是直接硬编码的,将就着看一下吧

figure

img = im2double(imread('th.jpg'));
subplot(331)
imshow(img)
img2 = (rot90(img, 1)); %翻转90度
subplot(332)
imshow(img2);
img3 = flipud(img); %从上到下翻转
subplot(333)
imshow(img3)
%img4 = fliplr(img); % 左右翻转
subplot(334)
imshow(flipud(img2))

img5 = fliplr(img); % 似乎是翻转某个维度
subplot(335)
imshow(img5)

img6 = flipud(img);
subplot(336)
imshow(img6)


imgNew = img;
for i=1:120
    for j=1:474
        imgNew(i,j,3)=0;
        imgNew(i,j,2) = 0;
        imgNew(i,j,1)=0;
    end
end

for i= 354:474
    for j=1:474
        imgNew(i,j,3)=0;
        imgNew(i,j,2) = 0;
        imgNew(i,j,1)=0;
    end
end

for i = 1:474
    for j = 1:120
        imgNew(i,j,3)=0;
        imgNew(i,j,2) = 0;
        imgNew(i,j,1)=0;
    end
end

for i=1:474
    for j=354:474
        imgNew(i,j,3)=0;
        imgNew(i,j,2)= 0;
        imgNew(i,j,1)=0;
    end
end

subplot(337)
imshow(imgNew); %第7张

%第八张
imgNew2 = img;

for i=120:354
    for j=120:354
        imgNew2(i,j,1)=1;
        imgNew2(i,j,2)=1;
        imgNew2(i,j,3)=1;
    end
end
subplot(338);
imshow(imgNew2);


%翻转一下图片,然后取下三角矩阵
img = imread('th.jpg');
imgNew = fliplr(img);
%imshow(imgNew);
r = triu(imgNew(:,:,1),0);
[m,n] = size(r);
for i=1:m
     for j=1:n
         if(r(m,n) == 0)
             r(m,n) = 0;
         end
     end
end
rNew = fliplr(r);


g = triu(imgNew(:,:,2),0);
for i=1:m
     for j=1:n
         if(g(m,n) == 0)
             g(m,n) = 0;
         end
     end
end

gNew = fliplr(g);
b = triu(imgNew(:,:,3),0);
for i=1:m
     for j=1:n
         if(b(m,n) == 0)
             b(m,n) = 0;
         end
     end
end
bNew = fliplr(b);

%imshow(bNew);

hsi = cat(3,rNew,gNew,bNew);   

subplot(339)
imshow(hsi)

运行效果:


结果
上一篇 下一篇

猜你喜欢

热点阅读