matlab彩色图像的平移与错切
·
一、彩色图像的平移
clc,clear all;
//图像平移
i=imread('M.jpg');
subplot(1,2,1),imshow(i);title("原图像");
R=i(:,:,1);
G=i(:,:,2);
B=i(:,:,3);
//将图像往下,往右平移20个像素点,其余用0点(黑色)填充
[x,y]=size(R);
p=1:x;q=1:y;
j_1(p+20,q+20)=R(p,q);
j_1(1:p+19,q+20)=0;
j_1(p+20,1:q+19)=0;
j_2(p+20,q+20)=G(p,q);
j_2(1:p+19,q+20)=0;
j_2(p+20,1:q+19)=0;
j_3(p+20,q+20)=B(p,q);
j_3(1:p+19,q+20)=0;
j_3(p+20,1:q+19)=0;
i_1=cat(3,j_1,j_2,j_3);
subplot(1,2,2),imshow(i_1);title("平移后的图像");

二、图像的错切
clc,clear all;
%图像平移
i=imread('M.jpg');
subplot(1,2,1),imshow(i);title("原图像");
R=i(:,:,1);
G=i(:,:,2);
B=i(:,:,3);
[m,n]=size(R);
b_1(1:m+0.5*n,1:n)=0;
b_2(1:m+0.5*n,1:n)=0;
b_3(1:m+0.5*n,1:n)=0;
for x=1:m
for y=1:n
b_1(fix((x+0.5)*y),y)=double(R(x,y));
b_2(fix((x+0.5)*y),y)=double(G(x,y));
b_3(fix((x+0.5)*y),y)=double(B(x,y));
end
end
i_1=cat(3,b_1,b_2,b_3);
subplot(1,2,2),imshow(i_1);title("错切后的图像");
更多推荐


所有评论(0)