-3
以前は、ローカルバイナリパターン(LBP)のコードを作成し、LBPイメージとヒストグラムを取得しました。今私は6×6行列に画像を分割し、各6×6行列のLBP画像とヒストグラムを取得したいと思います。私は以下のコードを書いた。しかしそれはうまく動作しません。LBPを6x6の行列に分割する
I2=imread('CropF.jpg');
m=size(I2,1);
n=size(I2,2);
counter = 1;
for i=2:6:m-1
for j=2:6:n-1
for k=i:i+6
for l=j:j+6
J0=I2(k,l);
I3(k-1,l-1)=I2(k-1,l-1)>J0;
I3(k-1,l)=I2(k-1,l)>J0;
I3(k-1,l+1)=I2(k-1,l+1)>J0;
I3(k,l+1)=I2(k,l+1)>J0;
I3(k+1,l+1)=I2(k+1,l+1)>J0;
I3(k+1,l)=I2(k+1,l)>J0;
I3(k+1,l-1)=I2(k+1,l-1)>J0;
I3(k,l-1)=I2(k,l-1)>J0;
LBP(k,l)=I3(k-1,l-1)*2^7+I3(k-1,l)*2^6+I3(k-1,l+1)*2^5+I3(k,l+1)*2^4+I3(k+1,l+1)*2^3+I3(k+1,l)*2^2+I3(k+1,l-1)*2^1+I3(k,l-1)*2^0;
end
end
LBP=uint8(LBP);
LBPv=reshape(LBP,1,size(LBP,1)*size(LBP,2));
Hist=hist(LBPv,0:255);
Hist1(counter,:)= Hist;
fname = sprintf('HistInf%03d.mat', counter);
save(fullfile(BASE_DIR,fname), 'Hist');
counter = counter + 1;
end
end
save('C:\Users\Lakshmen\Documents\MATLAB\HistInfMain','Hist1');
このようなエラーがあります:??? Index exceeds matrix dimensions
です。
さらに、mとnの値は394と330です。したがって、カウンタの値は55ですが、これは私が得るものですが、上記のエラーが発生します。
おかげで...私はQNを編集します。.. –
これは、問題を解決しました(forループの上限を変更する)? – Amro
は問題を解決しませんでした...なぜm-1-6ですか?上記で説明したように –