X=imread('E:\example.png');
[m,n]=size(X);%m=141,n=738
t0=0;
num=0;%num用來處理第num+1個數字
for i=1:1:m if(sum(X(i,:))~=n && t0==0 ) t0=1; I0=i; end if(sum(X(i,:))==n && t0==1) t0=0; I1=i-1; t1=0;%切割上下分界線 for j=1:1:n t1=0; if(sum(X(I0:I1,j))~=I1-I0+1 && t1==0) t1=1; J0=j; end if(sum(X(I0:I1,j))==I1-I0+1 && t1==1) t1=0; J1=j-1;%切割左右分界線 X0=X(I0:I1,J0:J1);%切割下來的數存到矩陣X0中 imshow('X0'); pause('0.5'); fprintf('%d,%d,%d,%d\t',I0,I1,J0,J1);%切割完成 num=num+1; X1=zeros(15,75);%X1為一個15*75的零矩陣 p=J1-J0+1;%p是數字的列長 q=I1-I0+1;%q是數字的行高 x=int16((75-q)/2);%找數字的中心點 y=int16((15-p)/2); for w=1:1:q for v=1:1:p X1(w+y,v+x)=X0(w,v);%確定中心點 end end imwrite(X1,[num2str(num),'.png']);%num2str把數值轉換成字串,轉換后可以使用fprintf或disp函式進行輸出 X2=zeros(5,5);%X2為5*5的零矩陣 for r=1:1:5 for s=1:1:5 T=X1((r-1)*15+1:r*15,(s-1)*3+1:s*3); X2(r,s)=(15*3-sum(sum(T)))/(15*3); %計算隸屬度矩陣 end end disp(X2);%disp同時輸出字串和數字 %imwrite(X0,[savepath,num2str(num),'.png']);%將處理后的圖片保存在e:\下,命名為1.png [m,n]=size(X2); fileID=fopen(['E:\',num2str(num),'.txt'],'w');%創建的檔案保存到指定E檔案夾 for t=1:1:m fprintf(fileID,'%4f\t',X2(t,:)); fprintf(fileID ,'\n'); end fclose(fileID);%儲存樣本圖片,矩陣 end end end
end
uj5u.com熱心網友回復:
有沒有大神幫我看看,剛接觸matlab沒多久轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/144713.html
標籤:人工智能技術
上一篇:視頻播放、、、
下一篇:作業系統
