I=imread('lena.bmp'); %I=double(I); [C,R]=size(I); %求图像的规格 Img_size=C*R; %图像像素点的总个数 L=256; %图像的灰度级 H_img=0; nk=zeros(L,1); %%%%%%二重循环可以改为一重循环 for i=0:255 nk(i+1,1)=sum(sum(I==i)); %统计每个灰度级像素的点数 end %%%%%%%%%%%%%%%%%%% for k=1:L Ps(k)=nk(k)/Img_size; %计算每一个灰度级像素点所占的概率 if Ps(k)~=0; %去掉概率为0的像素点 H_img=-Ps(k)*log2(Ps(k))+H_img; %求熵值的公式 end end
%计算原图像各像素的新坐标 for indexX=0:(X-1) for indexY=0:(Y-1) ImageNew(round(indexX*cos(Angle)-indexY*sin(Angle))+round(abs(min([LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)])))+1,1+round(indexX*sin(Angle)+indexY*cos(Angle))+round(abs(min([LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)]))))=Image(indexX+1,indexY+1); end end