• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Matlab
  • 标签:

资源简介

使用matlab来实现一个图像的旋转处理 一种几何变换 资源是matlab的一个m文件 代码都在里面 带有一点释放方便理解 :) 具体实现描述: http: blog csdn net abee23 article details 7398749 (支持原创哈) 测试平台: linux + matlab2009b

资源截图

代码片段和文件信息

function img_rotate=my_img_rotate(origin_imgradian)
% 旋转后图像=my_img_rotate(源图像旋转弧度) 0<旋转弧度
% 算法: 图像旋转处理(顺时针)
% 创建时间: 2012-3-26(晚)
% 创建人: abee
% 博客: http://blog.csdn.net/abee23
% QQ: 8281845

% (abee:我会非常推荐你保留上面5行message的)


%得到包围盒图的大小(保存旋转后的图像)
[hwdump]=size(origin_img);

new_img_size  = (h^2+w^2)^0.5;
img_rotate = uint8(zeros(new_img_sizenew_img_size3)); %像素是整数

img_rotate_ipt = imrotate(origin_img-radian*57.3); %IPT提示的旋转函数

%注意访问矩阵时下标是整型的.
%如果单是一个转移那么将有一点些的像素复制不过去(像素空洞问题)
%但是向上+0.5或者向下-0.5时多两次复制这样就能够复制全部点过去了.

cos_val = cos(radian);
sin_val = sin(radian);

%计算(xy)的新坐标并把像素复制到新坐标(包围盒图).
%时间复杂度:O(n^2)
for x0=1:w
for y0=1:h
x = uint32(x0*cos_val - y0*sin_val + h

评论

共有 条评论

相关资源