Advertisement

在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)

还没有任何评论哟~