数字图像处理,使用matlab实现旋转(最近邻值,双线性,三次卷积插值实现插值)
对图像进行旋转,使用最近邻插值法,双线性插值,三次卷积插值三种方法进行插值。
源码:
clc;clear all;close all;
Img=imread('test1.bmp');
Img=double(Img);
[h w]=size(Img);
alpha=pi/6; %逆时针旋转的角度
wnew=w*cos(alpha)+h*sin(alpha); %新图像的宽width
hnew=w*sin(alpha)+h*cos(alpha); %新图像的高heighth
wnew=ceil(wnew); %取整
hnew=ceil(hnew);
u0=w*sin(alpha); %平移量
T=[cos(alpha),sin(alpha);-sin(alpha),cos(alpha)]; %变换矩阵
Imgnew1=zeros(hnew,wnew);
Imgnew2=zeros(hnew,wnew);
Imgnew3=zeros(hnew,wnew);
for u=1:hnew %u和v是新图像坐标,变换到原图像坐标x和y中。
for v=1:wnew