matlab中简单的图像旋转算法

该博客介绍了一个在MATLAB中实现图像旋转的简单算法,通过定义坐标变换矩阵和角度旋转变换矩阵,计算出旋转后图像的新尺寸,并对灰度图和彩色图像进行了处理,实现了图像的旋转操作。
摘要由CSDN通过智能技术生成
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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值