数字图像处理-Matlab实现图像的几何变换

本文详细介绍图像的平移、旋转、切变及镜像等几何变换方法,包括算法原理、实现步骤及测试结果。通过矩阵表示法,展示了不同映射方式对变换效果的影响。

目录

 

图像的平移

图像的旋转

图像的切变

图像的镜像

上述函数的测试脚本

结果


图像的平移

function OutImage = ImageShiftFun(InputImage,deltaX,deltaY,method)
%================================================================
% 功能:图像的x轴和y轴平移
% 参数:InputImage为输入单通道图像,deltaX为x轴平移量,deltaY为y轴平移量。
%method=1时采取向前映射,method=2时采取向后映射
% 返回值:OutImage为InputImage同维数组
% 主要思路:利用平移矩阵
% 备注:如果图像为多通道则需要重复调用
%        如果平移量为小数则采用邻域插值
% 调用方法:OutImage = ImageShiftFun(InputImage,deltaX,deltaY)
% 日期:2019.11.26
% 作者:Leetion
[iLimit,jLimit] = size(InputImage);
switch method
    case 1
        OutImage = zeros(iLimit, jLimit);
        ShiftArray = [1 0 deltaX; 0 1 deltaY; 0 0 1];
        for yIndex = 1:iLimit
            for xIndex = 1:jLimit
                InIndex= [xIndex;yIndex;1];
                OutIndex = ShiftArray*InIndex; 
                xOutIndex = round(OutIndex(1,1));
                yOutIndex = round(OutIndex(2,1));
                if (yOutIndex<=iLimit)&(xOutIndex <= jLimit)&(yOutIndex >= 1)&(xOutIndex >= 1)
                    OutImage(yOutIndex,xOutIndex) = InputImage(yIndex,xIndex);
                end
            end
        end
    case 2
        OutImage = zeros(iLimit, jLimit);
        ShiftArray = [1 0 -deltaX; 0 1 -deltaY; 0 0 1];
        for yIndex = 1:iLimit
            for xIndex = 1:jLimit
                OutIndex = [xIndex;yIndex;1];
                InIndex = ShiftArray*OutIndex; %矩阵乘法
                xInIndex = round(InIndex(1,1));
                yInIndex = round(InIndex(2,1));
                if (yInIndex<=iLimit)&(xInIndex<=jLimit)&(yInIndex>=1)&(InIndex>=1)
                    OutImage(yIndex,xIndex) = InputImage(yInIndex,xInIndex);
                end
            end     
        end
    otherwise
        warning("method只能取1或2");
end
end

图像的旋转

function OutImage = ImageRotateFun(Inp
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值