用matlab实现任意点图片的旋转_图像旋转MATLAB实现代码

图像旋转

MATLAB

实现

function

[I,I1,I2] = irotating( i, x0)

[m, n] = size(i);

%get the size of the image

mi = 0;

%x·½Ïò×îСµÄ×ø±êÖµ

mm = 0;

%x·½Ïò×î´óµÄ×ø±êÖµ

ni = 0;

%y·½Ïò

nm = 0;

for

x = 1:m

for

y = 1:n

x1 = ceil(x*cos(x0) - y*sin(x0));

if

x1>mm

mm = x1;

end

if

x1

mi = x1;

end

y1 = ceil(x*sin(x0) + y*cos(x0));

if

y>nm

nm = y1;

end

if

y

ni = y;

end

end

end

m0 = mm-mi;

%»-²¼x·½ÏòµÄ³¤¶È

n0 = nm-ni;

%»-²¼y·½ÏòµÄ³¤¶È

I = zeros(m0,n0);

%³õʼ»¯ÐýתͼÏñµÄ»-²¼

%¼ÆËãÐÂ×ø±ê£¬²¢¸³Öµ

for

x = 1:m

for

y = 1:n

if

mi<0

%×ø±êÖµ²»ÄܳöÏÖСÓÚµÈÓÚ0µÄÖµ

x1 = ceil(x*cos(x0) - y*sin(x0)) - mi + 1;

else

x1 = ceil(x*cos(x0) - y*sin(x0));

end

if

ni<0

y1 = ceil(x*sin(x0) + y*cos(x0)) -ni + 1;

else

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值