how to find threshold values in an image in matlab?

0

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 could you 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
    
asked by anonymous 16.09.2018 / 00:43

0 answers