在MATLAB中开发基于邻近插值的图像旋转代码
发布时间
阅读量:
阅读量
图像旋转计算表达式如下:
i´= icosθ-jsinθ
j´= isinθ+jcosθ
步骤1:对画布进行扩展处理,扩展范围依据端点数值确定
步骤2:根据图像旋转公式,生成旋转后的图像
步骤3:对出现的空洞区域进行填充操作,所采用的插值方法包括邻近插值法与均值插值法,其中选择的是邻近插值法。
function [im] = rot_interpolation(I,ang)
% I = [11 12 13; 21 22 23; 31 32 33];
% ang = pi/6;
[m,n,s] = size(I);
a = sin(ang)
b = cos(ang)
i_min = round(min(min(min(min(m*b-n*a,m*b-a),b-n*a),b-a)))
i_max = round(max(max(max(max(m*b-n*a,m*b-a),b-n*a),b-a)))
j_min = round(min(min(min(min(m*a+n*b,m*a+b),a+n*b),a+b)))
j_max = round(max(max(max(max(m*a+n*b,m*a+b),a+n*b),a+b)))
y_m = 1 - i_min
全部评论 (0)
还没有任何评论哟~
