matlabの場合:RGB画像「img」があります。私が書いた場合:
tmpImg=imhist(img);
画像全体のヒストグラムを取得します。'minVal'と'maxVal'の間のピクセルのヒストグラムを計算したいと思います。
それ、どうやったら出来るの?ありがとう
各チャネルの値の範囲内で論理インデックスを使用できます。つまり、画像 I の場合、 と のI
間minVal
の値maxVal
は
I(I>minVal&I<maxVal)
したがって、3 チャネル (カラー) 画像の場合、チャネルごとのヒストグラムは次のようになります。
I = double(imread('peppers.png')); % example image
minVal = 50;
maxVal = 200;
nBins = 50; % histogram bins
for i=1:3
C = I(:,:,i);
[countsC(i,:),binsC(i,:)] = hist(C(C>minVal&C<maxVal),nBins);
end
figure; hold all; % draw 3 "bounded" histograms on same plot
c = {'r','g','b'};
for i=1:3
stem(binsC(i,:), countsC(i,:), c{i}, '.');
end
axis tight