MATLAB--数字图像处理 图像旋转

简介: MATLAB--数字图像处理 图像旋转

图像旋转

图像的旋转其实矩阵的旋转,而整个矩阵的旋转,则可以看出单个坐标的旋转。也就是说,只有我们知道了单个坐标旋转后的坐标,那么就很好得出旋转之后的图像了。这里我们假定旋转后的图像大小不变哈。

对于看旋转原理,这里可以去看一位大佬写的文章,写的很好,慢慢按着他的方法,就会懂旋转的原理,这里我就不多说了。(写的真的很好!)文章链接

自己写的代码:

function [newimage]=rotate(img,degree)

%获取图片信息 注意三通道获取完 即定义三个变量
[m,n,dep]=size(img);

%计算出旋转之后,形成一个大矩形的长宽 可以看效果图
rm=round(m*abs(cosd(degree))+n*abs(sind(degree)));
rn=round(m*abs(sind(degree))+n*abs(cosd(degree)));

%定义一个新矩阵,三通道的,存储新图片的信息
newimage=zeros(rm,rn,dep);

%坐标变换 分三步 
m1=[1,0,0;0,1,0;-0.5*rm,-0.5*rn,1];
m2=[cosd(degree),sind(degree),0;-sind(degree),cosd(degree),0;0,0,1];
m3=[1,0,0;0,1,0;0.5*m,0.5*n,1];

%利用循环,对每一个像素点进行变换
for i=1:rm
    for j=1:rn
        tem=[i j 1];
        tem=tem*m1*m2*m3;
        x=tem(1,1);
        y=tem(1,2);
        x=round(x);
        y=round(y);
        if(x>0&&x<=m)&&(y>0&&y<=n)
        newimage(i,j,:)=img(x,y,:);
        end
        end
        end

end
 t=imread('a1.jpg');
t1=rotate(t,30);
subplot(1,2,1),imshow(uint8(t)),title('原图');
subplot(1,2,2),imshow(uint8(t1)),title('旋转30度后');

效果图:
在这里插入图片描述

总结:

  • 这里其实很多文章的坐标转换有点不一样,其实只要懂了原理,发现就是一样的,差异就在坐标轴的建立上,上面那篇文章,作者是用了两种坐标轴,一种是高中我们学的一般的,第二种就是我们图像处理常用的,即向下为X,右为Y。
  • 我自己写的算法都是按照图像处理常用的坐标轴,方便点,当然算法也是按照顺时针旋转写的。
目录
相关文章
|
4月前
|
计算机视觉
数字图像处理笔记(一)Matlab实现直方图均衡化
数字图像处理笔记(一)Matlab实现直方图均衡化
|
编解码 计算机视觉
MATLAB--数字图像处理 图像的采样与量化
MATLAB--数字图像处理 图像的采样与量化
402 0
MATLAB--数字图像处理 图像的采样与量化
|
计算机视觉
山东大学数字图像处理实验:MATLAB的图像显示方法
山东大学数字图像处理实验:MATLAB的图像显示方法
132 1
山东大学数字图像处理实验:MATLAB的图像显示方法
|
算法 C++ 计算机视觉
MATLAB--数字图像处理 图像的灰度变换与直方图修正
MATLAB--数字图像处理 图像的灰度变换与直方图修正
258 0
MATLAB--数字图像处理  图像的灰度变换与直方图修正
|
计算机视觉
MATLAB--数字图像处理 Hough变换
MATLAB--数字图像处理 Hough变换
157 0
MATLAB--数字图像处理 Hough变换
|
算法 计算机视觉
MATLAB--数字图像处理 Otsu算法(MATLAB原理验证)
MATLAB--数字图像处理 Otsu算法(MATLAB原理验证)
329 0
MATLAB--数字图像处理 Otsu算法(MATLAB原理验证)
|
算法 计算机视觉
MATLAB--数字图像处理 击中击不中变换
MATLAB--数字图像处理 击中击不中变换
152 0
MATLAB--数字图像处理  击中击不中变换
|
计算机视觉
MATLAB--数字图像处理 傅里叶变换实现图像压缩
MATLAB--数字图像处理 傅里叶变换实现图像压缩
245 0
MATLAB--数字图像处理 傅里叶变换实现图像压缩
|
算法框架/工具 计算机视觉 异构计算
MATLAB--数字图像处理 im2col()
MATLAB--数字图像处理 im2col()
117 0
MATLAB--数字图像处理  im2col()
|
计算机视觉
MATLAB--数字图像处理 PSNR
MATLAB--数字图像处理 PSNR
306 0
MATLAB--数字图像处理  PSNR

热门文章

最新文章