how to find threshold values in an image?
10 views (last 30 days)
Show older comments
how to find threshold values in an image, with the following ranges: 0-0.25, 0.25-0.50,0.50-0.75 and 0.75-1? And they could tell me what makes the following code please:
GRAY = mat2gray(bEnhanced);
% figure,
% imshow(GRAY),
% title('Gray Image');
threshold = graythresh(GRAY);
disp(threshold)
threshold
BW = imbinarize(GRAY, threshold*(1.1+threshold));
c = BW;
% figure,
% imshow(BW),
% title('Binary Image');
BW = ~ BW;
% figure,
% imshow(BW),
% title('Inverted Binary Image');
[B,L] = bwboundaries(BW,'holes');
STATS = regionprops(L, 'all'); % we need 'BoundingBox' and 'Extent'
% pixelVals = regionprops(c,'MeanIntensity');
% Step 7: Classify Shapes according to properties
% Square = 3 = (1 + 2) = (X=Y + Extent = 1)
% Rectangular = 2 = (0 + 2) = (only Extent = 1)
% Circle = 1 = (1 + 0) = (X=Y , Extent < 1)
% UNKNOWN = 0
% figure,
% imshow(RGB),
% title('Results');
im=bEnhanced;
pixelVals=regionprops(L,im,'MeanIntensity');
axes(handles.img_bw);
imshow(GRAY);
hold on
for i = 2 : length(STATS) %ignore idx=1, because that's the whole image
% W(i) = uint8(abs(STATS(i).BoundingBox(3))>4 && abs(STATS(i).BoundingBox(4)) > 4);
% W(i) = W(i) + 2 * uint8((STATS(i).Extent - 1) == 0 );
centroid = STATS(i).Centroid;
if(abs(STATS(i).BoundingBox(3))>8 && abs(STATS(i).BoundingBox(4)) >8)
plot(centroid(1),centroid(2),'wX','Color', 'red');
bb = STATS(i).BoundingBox;
rectangle('Position', bb,...
'EdgeColor', 'red', 'LineWidth', 1)
% visboundaries(B,'LineWidth',0.1);
% pixelVals(i).MeanIntensity
density = ((pixelVals(i).MeanIntensity*100)/255);
t = text(centroid(1),centroid(2),strcat(num2str(density)),'Color','red');
%t = text(centroid(1),centroid(2),strcat(num2str(density),'% ----- ' , num2str(i)),'Color','black');
t.FontSize = 15;
end
end
hold on
img=getimage(handles.img_gray);
hold off
1 Comment
KALYAN ACHARJYA
on 16 Sep 2018
Check the Gonzalez Book (With Matlab)-Chapter 10: Image Segmentation (Page 516 in Second Edition), you will get the threshold values.
Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!