How to create a binary mask
    조회 수: 27 (최근 30일)
  
       이전 댓글 표시
    
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
채택된 답변
  Image Analyst
      
      
 2022년 1월 13일
        Try adjusting the threshold value T in imbinarize() until you get the threshold you want:
댓글 수: 6
  Image Analyst
      
      
 2022년 1월 13일
				% 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');

추가 답변 (1개)
  KSSV
      
      
 2022년 1월 12일
        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
  yanqi liu
      
 2022년 1월 13일
				yes,sir,may be use multi threshold,if possible,may be upload this origin image file
참고 항목
카테고리
				Help Center 및 File Exchange에서 Image Processing and Computer Vision에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!








