% 两维图像旋转以及双线性灰度差值算法的实现
im_init = imread('D:/81.jpg');
im_init = double(im_init); %转换为double类型的数据
im_height = size(im_init,1); %size(a)表示矩阵每个维度的长度,这里是读取高度
im_width = size(im_init,2);%读取宽度
% 分别处理灰度图像和RGB图像
if ndims(im_init) == 3
%ndims(a)表示矩阵a的维数,即length(size(a))
im_final = zeros(im_height,im_width,3);
R = im_init(:,:,1);
G = im_init(:,:,2);
B = im_init(:,:,3);
R_final = im_final(:,:,1);
G_final = im_final(:,:,2);
B_final = im_final(:,:,3);
else
im_final = zeros(im_height,im_width);
end
% rot_matrix = input('输入旋转矩阵,大小为2*2');
rot_matrix = [cos(theta) -sin(theta);sin(theta) cos(theta];
for h = 1:im_height
for w = 1:im_width
% 平移至原点,旋转,然后再平移