【正文】
im=zeros(SZ,SZ,3)。 for i=1:size(pic2,1) for j=1:size(pic2,2) tmp=T*[j。i。1]。 nx=round(tmp(1))+trX。 ny=round(tmp(2))+trY。 if nx=1 amp。amp。 nx=SZ amp。amp。 ny=1 amp。amp。 ny=SZ im(ny,nx,:)=pic2(i,j,:)。 end end end im=imresize(im,1,39。bicubic39。)。 tpic1=zeros(SZ,SZ,3)。 tpic1(1+trY:size(pic1,1)+trY,1+trX:size(pic1,2)+trX,:)=pic1。 re=rgb2gray(uint8(im))rgb2gray(uint8(tpic1))。 for k=1:3 ta=im(:,:,k)。tb=tpic1(:,:,k)。 ta(re==0)=tb(re==0)。 im(:,:,k)=ta。 end clear ta tb re tpic1 im=getPicture(im,SZ)。 im=uint8(im)。 if length(size(pic1))==2 im=rgb2gray(im)。 end function im=getPicture(pic,SZ) % 功能:獲取圖像有用區(qū)域 % 輸入: % pic:拼接圖像 % SZ:預(yù)定圖像尺寸 % 輸出: % im:有用區(qū)域圖像 if length(size(pic))==2 pic=cat(3,pic,pic,pic)。 end k=1。 while kSZ if any(any(pic(k,:,:))) break end k=k+1。 end ceil=k。 %上邊界 k=SZ。 while k0 if any(any(pic(k,:,:))) break end k=k1。 end bottom=k。 %下邊界 k=1。 while kSZ if any(any(pic(:,k,:))) break end k=k+1。 end left=k。 %左邊界 k=SZ。 while k0 if any(any(pic(:,k,:))) break end k=k1。 end right=k。 %右邊界 %%獲取圖像 im=pic(ceil:bottom,left:right,:)。