matlab 中没有imrotate,matlab – 在没有图像处理工具箱的情况下旋转图像
我想用Matlab旋转非平方图像:
>不使用imrotate函数,因为它是图像处理工具箱的一部分,
>使用松散参数,这意味着输出的大小与输入图像的大小不同,
>与imrotate相比,功能不太慢.
为了做到这一点,我已经找到了a function(只是用你自己的函数替换imshow和bestblk以便不使用工具箱),但对于大图像来说它真的很慢.我的方法是尽量避免在interp2上进行循环和尽可能多的依赖.
该功能的签名将是:
imOutput = my_imrotate(imInput,theta_degres,interpolation,bbox)
哪里:
>插值是双线性,双三次或最近的,
> bbox会裁剪或松动.
作物
我已经使用crop参数获得了良好的结果,但我无法找到松散参数的偏移量.
这是crop参数的代码,其中Z是输入,Zi是输出:
Z = double(imInput);
sz = size(Z);
[X,Y] = meshgrid(1:sz(2), 1:sz(1));
%# Center
c = sz(end:-1:1)/2;
%# Angle
t = theta_degres*pi/180;
%# Rotation
ct = cos(t);
st = sin(t);
Xi = c(1) + ct*(X-c(1))-st*(Y-c(2));
Yi = c(2) + st*(X-c(1))+ct*(Y-c(2));
%# Rotation
Zi = interp2(X, Y, Z, Xi, Yi);
疏松
我的想法是计算包含原始图像和旋转图像的帧的大小,然后:
>填充原始图像以使图像的大小与帧的大小相同,
>在填充图像上使用interp2,
>裁剪生成的图像,以使旋转的图像没有填充的剩余部分.
要使用松散参数获取旋转图像的大小,我计算rotation_matrix并在输入图像的角点p的坐标上调用rotate_points:
rotation_matrix = [ct, -st; st, ct];
rotate_points = @(p) bsxfun(@plus, c', rotation_matrix * bsxfun(@minus, p, c)')';
任何帮助将受到高度赞赏.
编辑:使用下面答案中提供的解决方案,以及以下代码,它似乎工作正常:
%# See the answer below
[sz1,sz2] = size(Z);
sz1New = sz1*cos(t)+sz2*sin(t);
sz2New = sz2*cos(t)+sz1*sin(t);
[Xi,Yi] = meshgrid(-(sz2New-1)/2:(sz2New-1)/2,-(sz1New-1)/2:(sz1New-1)/2);
%# now all that's left is rotating Xi,Yi - I have already subtracted the center
%# My little piece of additional code
Xii = (1+sz2)/2 + ct*Xi - st*Yi;
Yii = (1+sz1)/2 + st*Xi + ct*Yi;
Zi = interp2(X, Y, Z, Xii, Yii);
matlab 中没有imrotate,matlab – 在没有图像处理工具箱的情况下旋转图像相关推荐
- matlab中插入希腊,matlab中希腊字母打法
如何在matlab中输入希腊字母_数学_自然科学_专业资料.matlab数据可视化处理,绘图技巧 如何在 matlab 中输入希腊字母 matlab 中用转义符来输入希腊字母的方法 上标用 ..... ...
- matlab excel导入矩阵,如何将excel中数据导入到matlab中!Excel导入matlab生成矩阵
如何将excel中数据导入matlab并存入数组中 使用Matlab中的Excel Link就可以了. 如果使用Excel 2003版本,操作如下: 1 打开Excel. 2 在菜单栏中选择→加载项→ ...
- matlab中特殊字符6,matlab中特殊字符
matlab特殊字符_工学_高等教育_教育专区.本文说明了matlab中如何输入特殊字符,如希腊字母字符映射表 C:\\WINDOWS\\system32\\charmap.exe M 文件里是可以输 ...
- windows10 中 python3 离线 安装包,没有 网络 的 情况下 安装 whl包
windows10中python3离线 安装包,没有 网络 的 情况下 安装 包 下载whl文件 cd python.exe文件路径 pip download 包名 举例 whl 文件 复制到 没有 ...
- Chrome 插件:自己写的插件提示请停用以开发者模式运行的插件处理方法,该拓展程序未列在chrome网上应用商店中,并可能是在您不知情的情况下添加的解决办法
Chrome 浏览器插件问题处理 第一章:问题描述 ① 问题一:请停用以开发者模式运行的插件 ② 问题二:该拓展程序未列在 chrome 网上应用商店中,并可能是在您不知情的情况下添加的 第二章:Ch ...
- 解决:该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的
直接使用.crx安装或者不是从Chrome应用商店中安装的插件,插件在扩展列表中会被禁用,启用按钮无法勾选并且提示: "该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况 ...
- matlab中读入sav,matlab数据读取与存入详解
matlab数据读取与存入详解 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出 ...
- MATLAB中hough反变换,matlab中hough变换
hough 变换提取直线(Matlab 实现) Hough 变换提取直线一.实验目标实现用 Hough 变换检测直线的算法二.实验内容 1.读入图像选取有较多直线及部分曲线以作对比的...... j= ...
- matlab中的routte,matlab外文翻译外文文献英文文献MATALAB混合仿真平台控制算法的概述...
<matlab外文翻译外文文献英文文献MATALAB混合仿真平台控制算法的概述>由会员分享,可在线阅读,更多相关<matlab外文翻译外文文献英文文献MATALAB混合仿真平台控制算 ...
- matlab中的histc,Matlab histc与矢量箱
如果我有两个矩阵A和B,大小为[m×n]和[p×n],并且我想要找出B中每行出现在A中的次数,例如: >> A = rand(5,3) A = 0.1419 0.6557 0.7577 0 ...
最新文章
- gcc离线安装 ubuntu 不用编译_Ubuntu快速搭建C++开发环境(VS Code编辑器)
- 动态矩阵控制matlab程序_【实时关注】你了解MATLAB吗?
- python中property方法有用_python中@property和property函数常见使用方法示例
- 学术前沿 | DeepMind最新成果:图表示学习算法推理~46页ppt
- 解释抽象类继承实体类的前提是这个实体类必须明确构造函数
- 程序员应该收藏哪些资讯类网站
- Java课程设计-基于Swing的文本编辑器
- SQL行列转换-sum函数的妙用
- 共享hp无线扫描到计算机,共享HP / HP扫描仪的OpenWrt路由器
- iOS面试 swift篇
- 企业信用等级重不重要?看看各地招标文件就知道了。
- 使用Flink Metric Reporter 对flink任务指标进行监控
- JavaScript 每日一题---LeetCode 121. 买卖股票的最佳时机
- VUE记录用户切屏次数并弹出提示
- 微信小程序-001-抽签功能-006-我的抽签-主界面
- 不当程序员,你会干什么
- java linux解压_在LINUX下 用JAVA如何解压rar文件
- 【推荐系统】4种推荐引擎预测你的电影品味
- 人人都爱写总结,却少有人做计划
- C程序|实现使用OPENSSL库 发送HTTPS请求,并接收数据|例如请求12306获取高铁、动车、火车车次信息的方法
热门文章
- 2.5 js格式化时间库
- 文件后缀名批量修改工具
- centos7自动获取ip命令_如何设置CentOS 7开机自动获取IP地址详解
- 【老生谈算法】matlab实现Dijkstra最短路算法源码——Dijkstra算法
- 2022华为机试真题 C++ 实现【最大股票收益】
- 计算机无法添加本地策略组,电脑打不开本地组策略编辑器,求破~!
- CATIA V5实战培训设计视频教程-基础建模 逆向造型A面 装配工程图
- 详解会员积分营销系统的作用
- 企业运用通兑吧数字会员卡进行营销的优势
- xz1刷Android10,索尼xz1国行版安卓9.0固件