matlabtuxiangpinjie.doc

Upload: nadeemq0786

Post on 04-Oct-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

matlab

matlabclear; I=imread('xingshi32.bmp');

if(isgray(I)==0) disp(',128 *128!'); else if (size(I)~=[128,128]) disp('!'); else H.color=[1 1 1]; % figure(H);imshow(I); title(''); zeroImage=repmat(uint8(0),[128 128]); figure(H); % meansImageHandle=imshow(zeroImage); title(''); %%%%%128 blockSize=[128 64 32 16 8 4 2]; %%S S=uint8(128); S(128,128)=0; threshold=input('(0--1):');% threshold=round(255*threshold); M=128;dim=128;

%%%%%%%%%%%%%%%%% %%%%%%%%%%% while (dim>1) [M,N] = size(I);

Sind = find(S == dim); numBlocks = length(Sind); if (numBlocks == 0) % break; end rows = (0:dim-1)'; cols = 0:M:(dim-1)*M; rows = rows(:,ones(1,dim)); cols = cols(ones(dim,1),:); ind = rows + cols; ind = ind(:);

tmp = repmat(Sind', length(ind), 1); ind = ind(:, ones(1,numBlocks)); ind = ind + tmp;

blockValues= I(ind); blockValues = reshape(blockValues, [dim dim numBlocks]);

if(isempty(Sind)) % break; end [i,j]=find(S); set(meansImageHandle,'CData',ComputeMeans(I,S)); maxValues=max(max(blockValues,[],1),[],2); minValues=min(min(blockValues,[],1),[],2); doSplit=(double(maxValues)-double(minValues))>threshold; dim=dim/2; Sind=Sind(doSplit); Sind=[Sind;Sind+dim;(Sind+M*dim);(Sind+(M+1)*dim)]; S(Sind)=dim; end [i,j]=find(S); % S set(meansImageHandle,'CData',ComputeMeans(I,S)); % Numberofbloks=length(i); % %sizev=size(v); end end2

PicName1='a.jpg'; % 1 PicName2='b.jpg'; % 2 PicOut='c.jpg'; % IV1=imread(PicName1); % 1 IV2=imread(PicName2); % 2 PicData=[IV1; IV2]; % PicData=[IV1 IV2]; % imwrite(PicData, PicOut, 'Quality', 75); %