matlab中实现旋转一张RGB图像

2024-12-30 02:21:39
推荐回答(2个)
回答1:

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即可。

回答2:

a=imread('D:\ebook\lena.bmp');a=rgb2gray(a);a1=imrotate(a,35,'bilinear');%%旋转函数,35为旋转角度,bilinear为旋转后不是整数点的像素值 通过双线性插值得到。当旋转角度为正时,逆时针旋转;当旋转角度为负时,顺时针旋转。

程序过程如下:

1、读取图像

2、显示原图

3、分离RGB3矩阵,用255减去每个矩阵的各点值,生成新的RGB矩阵

4、原图每个RGB值乘以预先设定的设定的FIX值

5、新RGB矩阵每个点值乘以1-FIX值

6、两图像内插融合

7、显示处理后图像