how to find threshold values in an image?
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaire
KALYAN ACHARJYA
le 16 Sep 2018
Check the Gonzalez Book (With Matlab)-Chapter 10: Image Segmentation (Page 516 in Second Edition), you will get the threshold values.
Réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!