Histogram thresholding to get the threshold point
Mostrar comentarios más antiguos
hi,
I have been on image segmentation, till now I have divided image into two parts then I have taken histogram of those two parts, after substracting two histograms
- I needed to choose threshold Value?
- I want to compare each pixel value with threshold value of a zero matrix of same size as image
- and if threshold value is less than pixel value it woould be assigned 0
What have I done that is not correct upto some extent is given below
x=imread('tumor.jpg');
% im=rgb2gray(x);
im=x(:,:,1);
[q r]=size(im);
s=r/2;
for i=1:q
for j=1:s
%n1(i,j)=im(i,j);
end
end
for k=1:q
for m=s:r
% n2(k,m)=im(k,m);
end
end
if true
%code
n1 = im(:, 1 : end/2); %image(x,y,c) c is matrix displayed as image
n2 = im(:, end/2+1 : end );%indicate last array index
figure, imshow(n1)
figure, imshow(n2)
figure, imhist(n1)
figure, imhist(n2)
if true
%code
diff=imhist(n2)-imhist(n1);
figure, bar(diff,'r')
thresh_level = graythresh(diff); %find best threshold level
c=zeros(size(im));
[r c1] = size(im);
allpix=im(r, c1);
for i=1:r
for j=1:c1
if allpix(i,j)> thresh_level
c=255;
else
c=0;
end
end
end
figure, imshow(c)
end
Respuesta aceptada
Más respuestas (2)
Iman Ansari
el 28 de Abr. de 2013
Hi.
% code
x=imread('tumor.jpg');
% im=rgb2gray(x);
im=x(:,:,1);
[q r]=size(im);
s=r/2;
% for i=1:q
% for j=1:s
% %n1(i,j)=im(i,j);
% end
% end
% for k=1:q
% for m=s:r
% % n2(k,m)=im(k,m);
% end
% end
if true
%code
n1 = im(:, 1 : end/2); %image(x,y,c) c is matrix displayed as image
n2 = im(:, end/2+1 : end );%indicate last array index
figure, imshow(n1)
figure, imshow(n2)
figure, imhist(n1)
figure, imhist(n2)
if true
%code
diff=imhist(n2)-imhist(n1);
figure, bar(diff,'r')
thresh_level = graythresh(diff); %find best threshold level
c=zeros(size(im));
[r c1] = size(im);
allpix=im;
allpix(allpix>thresh_level*255)=255;
allpix(allpix<=thresh_level*255)=0;
c=allpix;
% for i=1:r
% for j=1:c1
% if allpix(i,j)> thresh_level
% c=255;
% else
% c=0;
% end
% end
% end
figure, imshow(c)
end
end
11 comentarios
Muhammad Ali Qadar
el 28 de Abr. de 2013
Muhammad Ali Qadar
el 28 de Abr. de 2013
vetri
el 29 de Sept. de 2014
I want to threshold my image by using kapur(max entropy) method..what to do?
Image Analyst
el 29 de Sept. de 2014
I'd program it up in MATLAB. Can't you do that?
Vertika Jain
el 6 de Nov. de 2016
Hello, i am working on matlab code for shadow detection and removal from aerial images using bimodal histogram splitting method for thresholding. can u plz help me with the code.
Image Analyst
el 6 de Nov. de 2016
That seems like a really bad algorithm. You should look here: http://www.visionbib.com/bibliography/contents.html for published algorithms that work.
Here's some work that the University of Dayton has done on shadow removal: https://www.udayton.edu/engineering/centers/vision_lab/wide_area_surveillance/visibility_improvements.php
Vertika Jain
el 18 de En. de 2017
Thanks for ur support. Now i am successfully able to detect the shadow in an image but unable to remove it. Can u plz help me.
Image Analyst
el 18 de En. de 2017
Just add an offset, or multiply by a factor greater than 1, to raise the gray levels in the shadow regions.
Vertika Jain
el 18 de En. de 2017
This is my detected shadow. Now how should i add an offset.
Vertika Jain
el 18 de En. de 2017

Image Analyst
el 18 de En. de 2017
Take your output image use it as a mask and add something to it. Something like
shadows = output > 250; % Find white areas
grayImage(shadows) = grayImage(shadows) + 100; % Add 100 to shadow areas.
Or multiply by a factor
brightnessFactor = 1.5;
grayImage(shadows) = uint8(double(grayImage(shadows)) * brightnessFactor);
Alex Taylor
el 7 de Nov. de 2016
Editada: Alex Taylor
el 7 de Nov. de 2016
0 votos
If you are trying to divide the 1-D feature space of grayscale values into 2 classes, that is exactly what the traditional Otsu thresholding algorithm does.
This algorithm is implemented in the MATLAB Image Processing Toolbox as greythresh:
This is the standard approach to global thresholding for binary image segmentation problems. I haven't looked at your paper.
Categorías
Más información sobre Image Processing Toolbox en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
