作业帮 > 综合 > 作业

matlab中实现旋转一张RGB图像

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/16 01:16:39
matlab中实现旋转一张RGB图像
matlab中实现旋转一张RGB图像
a=imread('D:\ebook\lena.bmp'); a=rgb2gray(a); a1=imrotate(a,35,'bilinear');%%旋转函数,35为旋转角度,bilinear为旋转后不是整数点的像素值 通过双线性插值得到.当旋转角度为正时,逆时针旋转;当旋转角度为负时,顺时针旋转. figure,imshow(a); figure,imshow(a1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%如果要对RGB图像旋转,可以对其各个分量进行旋转,最后合成彩色图像即可.假设彩色图像为a:R=a(:,:,1);G=a(:,:,2);B=a(:,:,3);对RGB用imrotate旋转同样的角度后变为R',G',B',则彩色图像为a1那么a1(:,:,1)=R';a1(:,:,2)=G';a1(:,:,3)=B';显示a1即可.
再问: p1=imread('a.bmp'); r1=p1(:,:,1),g1=p1(:,:,2),b1=p1(:,:,3); r1=rgb2gray(r1),g1=rgb2gray(g1),b1=rgb2gray(b1); i=imrotate(r1,30,'bilinear','crop'); j=imrotate(g1,30,'bilinear','crop'); k=imrotate(b1,30,'bilinear','crop'); img1(:,:,1)=i,img1(:,:,2)=j,img1(:,:,3)=k; imshow(img1); 您看看哪里错了?
再答: r1=rgb2gray(r1),g1=rgb2gray(g1),b1=rgb2gray(b1); 你转化成灰度了,最后就不能合成彩色图像了。