function [pucOutImag] = TurnImageTwo(img,Weight,Height,Angle)
centrenH = fix((Height)/2); %%%计算中心点的位置
centrenW = fix((Weight)/2); %%%计算中心点的位置
pucOutImag = zeros(Height,Weight);%用来存储向外输出的矩阵
piFill = zeros(1,2000);%%%%用来完善多出来的部分图像
count = 1; %%%%用来填补旋转后的空白区域图像的像素值
for i2=1:Height
y2 = centrenH - i2;
for j2=1:Weight
x2 = j2 - centrenW;
x1 = fix(x2 * round(1024 *cos(Angle)) - y2 * round(1024 * sin(Angle))); %%用来进行图像旋转公式矩阵
y1 = fix(x2 * round(1024 *sin(Angle)) + y2 * round(1024 * cos(Angle))); %%用来进行图像旋转公式矩阵
i1 = (centrenH) * 1024 -y1;
j1 = x1 + (centrenW) * 1024;
if (i1/1024 <= Height)&& (j1/1024 <= Weight)&&((i1/1024) >=1)&&((j1/1024) >=1)
zi= fix(i1/1024) ; %%% 映射到原图像的行
zj= fix(j1/1024) ; %%% 映射到原图像的列
xi= i1 - (( zi) * 1024 );
xj= j1 - (( zj)* 1024 );
A=xi * xj;
B=( xi * 1024 )-A;
C=( xj * 1024 )-A;
D=( 1 * 1024 * 1024 )-( xi * 1024 )-(xj * 1024 )+A;
mm = zi +1;
nn = zj +1;
if(mm > 400)
mm = 400;
end
if(nn > 400)
nn = 400;
end
pucOutImag(i2,j2) = fix( double((A * img(mm, nn)...
+ B*img(mm, zj)...
+ C*img(zi , nn)...
+ D*img(zi , zj)))/(1024*1024));
piFill(count) = j2;
count = count + 1;
end
end
exceptStart = piFill(1);
exceptEnd = piFill(count - 1);
for k=1:exceptStart
pucOutImag(i2,k) = pucOutImag(i2,exceptStart);
end
for b=exceptEnd+1:Weight
pucOutImag(i2,b) = pucOutImag(i2,exceptEnd);
end
count = 1;
end
end