How to create a binary mask
    28 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Elysi Cochin
      
 el 12 de En. de 2022
  
    
    
    
    
    Editada: Elysi Cochin
      
 el 17 de En. de 2022
            The attached images are my adaptive threshold output. When i use imbinarise, i get completely black pixels. Please can someone help me to create a binary mask from the attached output images.
0 comentarios
Respuesta aceptada
  Image Analyst
      
      
 el 13 de En. de 2022
        Try adjusting the threshold value T in imbinarize() until you get the threshold you want:
6 comentarios
  Image Analyst
      
      
 el 13 de En. de 2022
				% Demo by Image Analyst
clc;    % Clear the command window.
close all;  % Close all figures (except those of imtool.)
clear;  % Erase all existing variables. Or clearvars if you want.
workspace;  % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 22;
markerSize = 40;
%--------------------------------------------------------------------------------------------------------
%    READ IN IMAGE
folder = [];
baseFileName = 'im2.bmp';
fullFileName = fullfile(folder, baseFileName);
% Check if file exists.
if ~exist(fullFileName, 'file')
    % The file doesn't exist -- didn't find it there in that folder.
    % Check the entire search path (other folders) for the file by stripping off the folder.
    fullFileNameOnSearchPath = baseFileName; % No path this time.
    if ~exist(fullFileNameOnSearchPath, 'file')
        % Still didn't find it.  Alert user.
        errorMessage = sprintf('Error: %s does not exist in the search path folders.', fullFileName);
        uiwait(warndlg(errorMessage));
        return;
    end
end
grayImage = imread(fullFileName);
% Get the dimensions of the image.
% numberOfColorChannels should be = 1 for a gray scale image, and 3 for an RGB color image.
[rows, columns, numberOfColorChannels] = size(grayImage)
if numberOfColorChannels > 1
    % It's not really gray scale like we expected - it's color.
    % Extract the blue channel.
    grayImage = grayImage(:, :, 3);
end
%--------------------------------------------------------------------------------------------------------
% Display the image.
subplot(2, 2, 1);
imshow(grayImage);
impixelinfo;
axis('on', 'image');
title('Original Gray Scale Image', 'FontSize', fontSize, 'Interpreter', 'None');
hold on
% Maximize window.
g = gcf;
g.WindowState = 'maximized'
drawnow;
%--------------------------------------------------------------------------------------------------------
% Get a histogram
subplot(2, 2, 2);
imhist(grayImage);
grid on;
title('Histogram of Original Gray Scale Image', 'FontSize', fontSize, 'Interpreter', 'None');
%--------------------------------------------------------------------------------------------------------
% Set thresholds for each level.
thresholdValue1 = 149
xline(thresholdValue1, 'Color', 'r', 'LineWidth', 2);
thresholdValue2 = 169
xline(thresholdValue2, 'Color', 'r', 'LineWidth', 2);
%--------------------------------------------------------------------------------------------------------
% Binarize the image.
mask1 = grayImage > thresholdValue1;
% Display mask image.
subplot(2, 2, 3);
imshow(mask1);
impixelinfo;
axis('on', 'image');
drawnow;
caption = sprintf('Threshold = %d pixels', thresholdValue1);
title(caption, 'FontSize', fontSize, 'Interpreter', 'None');
%--------------------------------------------------------------------------------------------------------
% Binarize the image.
mask2 = grayImage > thresholdValue2;
% Display mask image.
subplot(2, 2, 4);
imshow(mask2);
impixelinfo;
axis('on', 'image');
drawnow;
caption = sprintf('Threshold = %d pixels', thresholdValue2);
title(caption, 'FontSize', fontSize, 'Interpreter', 'None');

Más respuestas (1)
  KSSV
      
      
 el 12 de En. de 2022
        It looks like imbinarize is working fine. 
I = imread('https://in.mathworks.com/matlabcentral/answers/uploaded_files/860265/im3.bmp') ;
imshow(I)
I1 = imbinarize(I) ;
imshow(I1)
3 comentarios
  yanqi liu
      
 el 13 de En. de 2022
				yes,sir,may be use multi threshold,if possible,may be upload this origin image file
Ver también
Categorías
				Más información sobre Image Processing and Computer Vision en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




