你在图像中有洞的原因是因为您正在计算imagepad中每个像素的imagerot的位置。你需要做相反的计算。也就是说,对于imagerot中的每个像素在图像平台中插值。为此,您只需要应用逆变换,在旋转矩阵的情况下只是矩阵的转置(只需更改每个sin上的符号并以另一种方式转换)。

在imagerot中循环像素:

imagerot=zeros(size(imagepad)); % midx and midy same for both

for i=1:size(imagerot,1)

for j=1:size(imagerot,2)

x= (i-midx)*cos(rads)+(j-midy)*sin(rads);

y=-(i-midx)*sin(rads)+(j-midy)*cos(rads);

x=round(x)+midx;

y=round(y)+midy;

if (x>=1 && y>=1 && x<=size(imagepad,2) && y<=size(imagepad,1))

imagerot(i,j)=imagepad(x,y); % k degrees rotated image

end

end

end

还要注意,你的midx和midy需要分别用size(imagepad,2)和size(imagepad,1)来计算,因为第一个维度是指行数(height),第二个是width。

注意:当您决定采用除最近邻居之外的插值方案时,同样的方法也适用,如Rody的线性插值示例。

编辑:我假设你正在使用一个循环来进行示范,但在实践中不需要循环。以下是最近邻插值(您正在使用的内容)的示例,保持相同大小的图像,但您可以修改此图像以生成包含整个源图像的较大图像:

imagepad = imread('peppers.png');

[nrows ncols nslices] = size(imagepad);

midx=ceil((ncols+1)/2);

midy=ceil((nrows+1)/2);

Mr = [cos(pi/4) sin(pi/4); -sin(pi/4) cos(pi/4)]; % e.g. 45 degree rotation

% rotate about center

[X Y] = meshgrid(1:ncols,1:nrows);

XYt = [X(:)-midx Y(:)-midy]*Mr;

XYt = bsxfun(@plus,XYt,[midx midy]);

xout = round(XYt(:,1)); yout = round(XYt(:,2)); % nearest neighbor!

outbound = yout<1 | yout>nrows | xout<1 | xout>ncols;

zout=repmat(cat(3,1,2,3),nrows,ncols,1); zout=zout(:);

xout(xout<1) = 1; xout(xout>ncols) = ncols;

yout(yout<1) = 1; yout(yout>nrows) = nrows;

xout = repmat(xout,[3 1]); yout = repmat(yout,[3 1]);

imagerot = imagepad(sub2ind(size(imagepad),yout,xout,zout(:))); % lookup

imagerot = reshape(imagerot,size(imagepad));

imagerot(repmat(outbound,[1 1 3])) = 0; % set background value to [0 0 0] (black)

为了将上述修改为线性插值,计算XYt中每个坐标的4个相邻像素,并使用分数分量乘积作为权重来执行加权和。我会把它作为一个练习,因为它只会使我的答案进一步超出你的问题的范围。

matlab imrotated,图像旋转由Matlab无需使用imrotate相关推荐

  1. 图像旋转的MATLAB和OpenCV源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 源码中用到的lena.jpg.lena_gray ...

  2. 【数字图像处理】MATLAB实现图像旋转

    前言 上节课学习了实现图像旋转的原理,下课后用matlab实现了一下图像旋转的功能,这里做个记录. 图像旋转原理 图像旋转的本质利用的是向量的旋转. 矩阵乘法的实质是进行线性变换,因此对一个向量进行旋 ...

  3. matlab 三维图像配准,[转载]Matlab实现多种图像配准(转)

    本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...

  4. matlab中图像轮廓变细,Matlab中,用bwmorph函数提取二进制图像的轮廓

    Matlab中bwmorph函数在提取二进制图像的轮廓如下: 语法: BW2 = bwmorph(BW1,operation) : BW2 = bwmorph(BW1,operation,n) : n ...

  5. matlab dicom图像异常,用Matlab处理Dicom图像

    最近在处理CT图像时,CT图像是对人体进行逐层扫描的,在图像有很多不需要的部分,比如肋骨部分就夹杂在里面,导致三维重建出来的图像有很多不需要的部分.很不好处理. 于是,我就想了了简单方法,对一张一张的 ...

  6. matlab 梯度图像,快速计算matlab中图像的梯度

    感谢您的所有答案和有用的建议.我采纳了pseudoDust的建议,Hugues,Dima和高性能标记并写我自己的代码.下面我的代码中给出: clc;clear all;close all; x=32; ...

  7. 怎样用matlab实现图像的缩放,matlab实现图像缩放

    [实例简介]不调用方法,手动实现图像缩放 [实例截图] [核心代码] % MATLAB script for Assessment Item-1 % Task-1 clear; close all; ...

  8. matlab给图像加云,matlab怎么给图像加雾

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 % -------------------------------------------------------------------- % 雾化处理 ...

  9. matlab给图像加网格,matlab把图像进行网格化,或者是在图像中画网格

    by:黄光耀 % %%%%%%%%%%%画网格%%%%%%%%%% % %%%%%%%%%%把带瓶盖的托盘完全分割开%%%%%%%%% % close all % clc % clear % %% 读 ...

  10. 使用matlab读取图像并通过matlab自带的fft2,fftshift,ifftshift,ifft2等函数获取该图像的傅里叶频谱图,幅度图,相位谱图,幅度图,相位谱图,幅度谱重建图以及相位谱重建

    %% 读取图像.预处理 Picture1 = imread('Cameraman.tif');tryPicture1=rgb2gray(Picture1); % 如果是RGB图像,转成灰度图 catc ...

最新文章

  1. 无需多个模型也能实现知识整合?港中文MMLab提出「烘焙」算法,全面提升ImageNet性能...
  2. 《松本行弘的程序世界》中文版原作者序
  3. Solr实战(二):索引操作
  4. phpcms_v9推送到其他栏目后再在其他栏目删除导致数据库出错
  5. Oracle查看表空间和表空间中的对象
  6. WINCE应用的UI实现方案
  7. 在EORow或者VORow中对数据进行重复性校验
  8. (37) BFC IFC GFC FFC概念
  9. 计算机行业深度分析,广发证券计算机行业深度分析
  10. 2013浙大878计算机网络大题答案解析
  11. iOS15.4来袭:新增“男妈妈”表情及口罩面容解锁、AirTags反跟踪等新功能
  12. Linus Torvalds 命名 [ 冰封荒原 ] 版 Linux 内核的思考
  13. Ubuntu,QT5连接MySQL
  14. iOS开发之33 款主宰 2017 iOS 开发的开源库
  15. JavaScript数据结构-15.二叉树
  16. APNs Push Notification教程一
  17. 2022泰迪杯数据挖掘挑战赛C题思路及赛后总结
  18. IT服务管理(一)服务的演变与整体观
  19. 计算机设备全年销售表,2021年计算机机房设备行业财务部门表格模板汇总 .pdf
  20. java 标准偏差函数std_如何使用JAVA计算标准差

热门文章

  1. 基于GD32F450+USB3300的高速USB传输
  2. 科学道德与学风-2021雨课堂答案-第4章
  3. 被忽视的大型互联网企业安全隐患:第三方开源WiKi程序
  4. xshell 安装包(百度网盘)+安装过程连接虚拟机注意事项
  5. 大气压随温度变化表_空气密度随温度的变化
  6. c语言超市选址问题实验报告,单仓库设施选址决策方法(重心法,C语言代码)
  7. 企业网络规划和设计方案
  8. 通过搜狗搜索爬取微信公众号文章,小程序版可体验
  9. 核方法(kernel Method)
  10. 2019年网络安全灾难事件,5大勒索病毒软件