image intensity scale sub-divide into two ranges

조회 수: 1 (최근 30일)
Nataliya
Nataliya 2014년 12월 2일
댓글: Thorsten 2014년 12월 2일
I have an image. I obtain the histogram for that image and calculate probability distribution using the code below:
if size(I,3) == 1 %grayscale image
[n_countR, x_valueR] = imhist(I(:,:,1));
Nt = size(I,1) * size(I,2); %Total number of pixels in the image ROW X COL
%Lmax segmenting color levels 0-256
Lmax = 256; %256 different maximum levels are considered in an image (i.e., 0 to 255)
% Probability distribution for each intensity level histogram 0 - 256
for i = 1:Lmax
if size(I,3) == 1
%grayscale image
probR(i) = n_countR(i) / Nt;
end
Now I want this image histogram, having range 0 to 255, to sub-divide into two having the range 0 to 127 and 128 to 255 respectively and find probability distribution for both. Please help. I hope now you can better understand my question. Much thanks..

채택된 답변

Guillaume
Guillaume 2014년 12월 2일
편집: Guillaume 2014년 12월 2일
By default, imhist on a greyscale image outputs 256 bins, just as you want. You then jut have to split this output in half, using simple indexing.
if size(I, 3) == 1 %in that case I(:,:, 1) == I
h = imhist(I); %histogram over 256 bins by default
hlow = h(1:128); %lower part of the histogram
hhigh = h(129:256); %higher part of the histogram
end
To convert to pdf over the total number of pixels, use matrix operations rather than for loops:
pdflow = hlow/numel(I);
pdfhigh = hhigh/numel(I);
or if you want pdfs over the population of each half-histogram:
pdflow = hlow/sum(hlow);
pdfhigh = hhigh/sum(hhigh);

추가 답변 (1개)

Thorsten
Thorsten 2014년 12월 2일
h1 = hist(I(I<=127), 0:127);
h2 = hist(I(I>=128), 128:255);
  댓글 수: 4
Nataliya
Nataliya 2014년 12월 2일
I have edit my question. Kindly review it and answer. I will be thankful to you
Thorsten
Thorsten 2014년 12월 2일
ind = find(I < 128);
Plow = hist(I(I < 128), 0:127)/numel(ind);
ind = find(I >= 128);
Plow = hist(I(I >= 128), 128:255)/numel(ind);

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by