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。
  • 我自己写的算法都是按照图像处理常用的坐标轴,方便点,当然算法也是按照顺时针旋转写的。
目录
相关文章
|
8月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
730 0
|
9月前
|
机器学习/深度学习 编解码 并行计算
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
397 8
|
8月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
978 0
|
8月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
253 0
|
10月前
|
机器学习/深度学习 传感器 监控
【图像处理】图像变暗、变亮和去模糊研究(Matlab代码实现)
【图像处理】图像变暗、变亮和去模糊研究(Matlab代码实现)
457 1
|
9月前
|
机器学习/深度学习 编解码 算法
【GUI】通过Hough变换在SEM显微图像上检测滑移线研究(Matlab代码实现)
【GUI】通过Hough变换在SEM显微图像上检测滑移线研究(Matlab代码实现)
298 0
|
8月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
410 8
|
9月前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
274 2
|
10月前
|
机器学习/深度学习 数据采集 搜索推荐
【图像分类】基于主成分分析和核支持向量机的脑磁共振图像分类器(Matlab代码实现)
【图像分类】基于主成分分析和核支持向量机的脑磁共振图像分类器(Matlab代码实现)
165 1
|
9月前
|
机器学习/深度学习 编解码 算法
【图像处理】图像的边缘检测(Matlab代码实现)
【图像处理】图像的边缘检测(Matlab代码实现)
424 1

热门文章

最新文章