基本思路:
为了避免直接旋转时,旋转后坐标值(即矩阵索引)为非整数值。
这里以旋转后的图像R为主,往回旋转并邻近取整,当R中坐标点转回后与原图I中坐标点位置一致时,将原图中对应的灰度值赋值给旋转图像,最后实现旋转。

源码:

function rotate(I)
%旋转图像
%输入:图像矩阵 (彩色可用Matlab自带图像 onion.png,灰度可用 rice.png 进行测试%%
%图像大小
if numel(size(I)) > 2[row,col,dep] = size(I);flag = 1;
else[row,col] = size(I);flag = 2;
end%旋转角度
theta = 20;%%
%旋转后大小 (邻近取整
row_r = round(abs(row*cosd(theta)) + abs(col*sind(theta)));
col_r = round(abs(col*cosd(theta)) + abs(row*sind(theta)));
%旋转后图像矩阵
if 1 == flagR = uint8(zeros(row_r, col_r,dep));
elseR = zeros(row_r, col_r);
end%%
for i = 1:row_rfor j = 1:col_r%将旋转中心移至原点c = i - row_r/2;d = j - col_r/2;%旋转 x = c*cosd(theta) - d*sind(theta);y = d*cosd(theta) + c*sind(theta);%将所需图像移至坐标系正值部分(邻近取整x = round(x + row/2);y = round(y + col/2);%筛选所需图像if x > 0 && x <= row && y <= col && y > 0         if 1 == flagR(i,j,:) = I(x, y,:);elseR(i,j) = I(x, y);endendend
end%%
%输出显示
imshow(I);
figure, imshow(R,[]);

Matlab图像练习程序:imrotate功能实现相关推荐

  1. MATLAB 图像嵌入水印图像程序

    MATLAB 图像嵌入水印图像程序 原理: 水印的嵌入: 对64x64像素的水印图像(可为rgb或灰度图像)进行猫脸变换,得到置乱后的水印图像W′W'W′: 对512x512像素的载体图像分割成互不重 ...

  2. matlab中函数绝对值图像,Matlab中图像函数大全 详细功能介绍

    Matlab中图像函数大全详细功能介绍(一)(2009-10-03 12:06:31)转载▼标签:matlab杂谈分类:programming 图像增强 1. 直方图均衡化的Matlab 实现 1.1 ...

  3. matlab 图像坐标系

    matlab 图像中图像坐标系与plot. imrotate坐标系的区别 图像坐标系是以图像左上角为原点,访问图像像素点img(m,n),如下图所示: plot的坐标系,以图像左上角为原点,在图像中划 ...

  4. matlab图像剪裁命令imcrop()

    matlab图像剪裁命令imcrop() 调用格式: I2=imcrop(I,RECT): X2=imcrop(X,MAP,RECT): RGB2=imcrop(RGB,RECT): 其中,I.X.R ...

  5. matlab平面图形的几何变换,matlab图像的几何变换

    2. 了解平移.伸缩.对称.旋转等变换. 3. 学习掌握 MATLAB 软件有 实验报告 课程名称:数学实验 实验名称:平面图形的几何变换 指导教师: 实验目的.要求: 1. ...... Matla ...

  6. MATLAB数字图像处理系统[多功能]

    MATLAB数字图像处理系统[多功能] 目录 实验一 MATLAB数字图像处理初步 实验二 图像的代数运算 实验三 图像增强-空间滤波 实验四 图像分割 2 实验一 MATLAB数字图像处理初步 一. ...

  7. 图像平移配准matlab,(MATLAB应用图像处理)第6章MATLAB图像配准.ppt

    第6章 MATLAB图像配准 6.1 图像配准概述 6.1.1 图像配准定义 图像配准是对从不同传感器.不同时间.不同视点所获得的两幅或多幅图像进行最佳匹配,以达到空间匹配和叠加目的的处理过程.本质上 ...

  8. DM642图像平移程序学习

    DM642的图像平移程序,刚开始没明白为什么平移要分为两个半屏来平移,后来琢磨了一下不知道理解对不对,先上程序: /*确定图像的参数*/ int numPixels = 720;//每行720个像素 ...

  9. matlab 图像操作函数的详解

    转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...

  10. Matlab图像剪切,超出图像区域指定颜色填充

    Matlab图像剪切,超出图像区域指定颜色填充 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/77507969 Matla ...

最新文章

  1. OKR能给公司和团队带来什么价值?
  2. SpringBoot的注解:@SpringBootApplication注解 vs @EnableAutoConfiguration+@ComponentScan+@Configuration...
  3. 短板效应C++代码实现
  4. 微信公众平台开发——问题篇
  5. 从思维图到基础再到深入,java空间查询
  6. 4.4使用@Enable*注释去切换配置
  7. adb 命令获取点击位置坐标
  8. LiveData setValue和postValue的区别及详解
  9. 洛谷 P3987 我永远喜欢珂朵莉~(Splay+BIT+无限卡常)
  10. npm EPERM: operation not permitted, rename解决
  11. 2022校园春季招聘自带内推码投递链接合集
  12. JVAV面试常考基础概念
  13. 「2019纪中集训Day12」解题报告
  14. vue项目微信端清理缓存问题解决
  15. 假设有100个瓶子,其中只有1瓶有毒药,你现在有7只老鼠,怎么检测出那一瓶是由毒的(老鼠喝到有毒的就会死)
  16. Web前端第三阶段学习
  17. js 取得 Unix时间戳(Unix timestamp)
  18. factory-method
  19. 阿里P8级架构师怎么处理电商业务中的数值计算的精度/舍入/溢出问题?
  20. 剑指Offer(十九):顺时针打印矩阵

热门文章

  1. 怎么在桌面添加windows便签记事本
  2. 单片机USB2.0高速接口实现方案
  3. 1.12 线性表的链式存储结构(C语言)
  4. 【游戏策划】Excel的使用技巧(一)
  5. Excel VBA 代码加密
  6. 罚函数法约束函数优matlab,外点惩罚函数法matlab
  7. 《仿人机器人原理与实战》一1.2 反射弧与仿人机器人设计
  8. 电容或电感的电压_用动画来解释电感和电容元件上电压电流超前滞后的关系
  9. IAST 被动扫描 WebGoat
  10. 硬盘转速和平均寻道时间