DAY13 Matlab直角坐标系实现图像旋转

Posted 酸罗卜不酸II

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAY13 Matlab直角坐标系实现图像旋转相关的知识,希望对你有一定的参考价值。

% 直角坐标系实现图像旋转
im=rgb2gray(imread(‘robot.jpg‘));
figure,imshow(im);
[row,col]=size(im);
a=pi/6; % 逆时针旋转30度

%得到行的初始矩阵
r1=repmat(1:row,row,1);
i=r1‘;

%得到列的初始矩阵
j=repmat(1:col,col,1);

i1=zeros(row,col);
for m=1:row
for n=1:col
i1(m,n)=round(m*cos(a)-n*sin(a)); %获得旋转后的i像素值 并且取整
end
end

j1=zeros(row,col);
for m=1:row
for n=1:col
j1(m,n)=round(m*sin(a)+n*cos(a)); %获得旋转后的j像素值 并且取整
end
end

%判断旋转后的i,j是否小于0 坐标调整
if min(min(i1))<min(min(j1))
if min(min(i1))<0
k=abs(min(min(i1)));
new_min=min(min(i1))+(k+1);
A=i1+ones(row,col)*(k+1);
end
elseif min(min(j1))<0
k=abs(min(min(j1)));
new_min=min(min(j1))+(k+1);
A=j1+ones(row,col)*(k+1);
end

new_max_i=max(max(A)); %最大行
new_max_j=max(max(j1)); %最大列
G=zeros(new_max_i,new_max_j); %构造空白的新画布

%接下来 进项数据填充

for m=1:row
for n=1:col
G(A(m,n),j1(m,n))=im(m,n);
end
end

figure,imshow(uint8(G));

 

 

 

以上是关于DAY13 Matlab直角坐标系实现图像旋转的主要内容,如果未能解决你的问题,请参考以下文章

用MATLAB怎么画直角坐标系的坐标轴

如何使用bokeh和javascript旋转2D直角坐标图?

DAY13 Matlab实现图像镜像

DAY13 Matlab实现图像错切源代码

图像旋转后显示不完全

能不能用MATLAB做三维图,可以三维旋转那种,并且能够显示出鼠标停留处坐标的函数值?