1

matlabの場合:RGB画像「img」があります。私が書いた場合:

tmpImg=imhist(img);

画像全体のヒストグラムを取得します。'minVal'と'maxVal'の間のピクセルのヒストグラムを計算したいと思います。

それ、どうやったら出来るの?ありがとう

4

1 に答える 1

3

各チャネルの値の範囲内で論理インデックスを使用できます。つまり、画像 I の場合、 と のIminValの値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
于 2012-10-29T23:05:51.230 に答える