function imrotate_(path,theta) %这里的path为读入的图像路径
close all;
I=imread(path);
[h,w,m]=size(I);
theta=(theta/180)*pi;
%%——定义四个顶点坐标
coord(1,1)=-w/2;coord(1,2)=h/2;
coord(2,1)=w/2; coord(2,2)=h/2;
coord(3,1)=w/2; coord(3,2)=-h/2;
coord(4,1)=-w/2;coord(4,2)=-h/2;
%%--坐标变换矩阵1
C1=[1 0 w/2;
0 -1 h/2;
0 0 1 ];
%%--角度旋转变换矩阵
A=[cos(theta) sin(theta) 0;
-sin(theta) cos(theta) 0;
0 0 1];
A1=[cos(theta) -sin(theta) 0;
sin(theta) cos(theta) 0;
0 0 1];
%%--四个顶点旋转后坐标
for i=1:4
temp=[coord(i,1) coord(i,2) 1]';
temp=A*temp;
coord(i,1)=temp(1);
coord(i,2)=temp(2);
end
%%--计算旋转后新的图像的高和宽
new_h=max(abs(coord(1,2)-coord(3,2)),abs(coord(2,2)-coord(4,2)))
new_w
matlab中简单的图像旋转算法
最新推荐文章于 2024-08-24 08:12:18 发布
该博客介绍了一个在MATLAB中实现图像旋转的简单算法,通过定义坐标变换矩阵和角度旋转变换矩阵,计算出旋转后图像的新尺寸,并对灰度图和彩色图像进行了处理,实现了图像的旋转操作。
摘要由CSDN通过智能技术生成