MATLAB实现图像绕某点(非图像中心点)旋转及放大并保持图像尺寸不变

本文分享了在MATLAB中实现图像绕特定非中心点旋转并放大的代码,通过矩阵运算变换原坐标与目标坐标的关系,保持图像尺寸不变,适用于数字图像处理课程实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MATLAB实现图像绕某点(非图像中心点)旋转及放大并保持图像尺寸不变

数字图像处理课上发布了一则下图所示的练习,
在这里插入图片描述
网上查找了相关资料并没有与非中心点为旋转点的,下贴出具体实现代码。关键就是原坐标与变换后坐标间关系。

function[]=pic()			  
 myRotation('TestCard.bmp',-30);
end       
function []=myRotation(pho,angle)
im1=imread(pho);
subplot(121);
imshow(im1);
title('输入图像');
im1=double(im1);
[r,c]=size(im1);
 
R=angle*pi/180; %转弧度

r2 =r;%向上取整
c2 =c;
im2=zeros(r2,c2);%初始化输出图像

  
%旋转
T=[cos(R) -sin(R); 
   sin(R)  cos(R) ];

 for x=1:r2
    for y=1:c2
            temp=([x y]-[200,100])/(3*T)+[200,100];
            temp=round(temp);        
            if temp(2)>0 && temp(2)<=c && temp(1)>0 && temp(1)<=r
                im2(y,x)=im1(temp(2),temp(1));
            end
    end
 end
subplot(122);
imshow(uint8(im2));
title('输出图像');
end
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值