How to apply a Color Thresholder function in Image Batch Processor

Technical Source
2 min readJan 1, 2022

--

How to apply a Color Thresholder function in Image Batch Processor to get masked RGB Images instead of binary ones?

function [BW,maskedRGBImage] = createMask(RGB)
%createMask Threshold RGB image using auto-generated code from colorThresholder app.
% [BW,MASKEDRGBIMAGE] = createMask(RGB) thresholds image RGB using
% auto-generated code from the colorThresholder app. The colorspace and
% range for each channel of the colorspace were set within the app. The
% segmentation mask is returned in BW, and a composite of the mask and
% original RGB images is returned in maskedRGBImage.
% Auto-generated by colorThresholder app on 07-Oct-2021
%------------------------------------------------------
% Convert RGB image to chosen color space
I = RGB;
% Define thresholds for channel 1 based on histogram settings
channel1Min = 23.000;
channel1Max = 80.000;
% Define thresholds for channel 2 based on histogram settings
channel2Min = 33.000;
channel2Max = 84.000;
% Define thresholds for channel 3 based on histogram settings
channel3Min = 0.000;
channel3Max = 34.000;
% Create mask based on chosen histogram thresholds
sliderBW = (I(:,:,1) >= channel1Min ) & (I(:,:,1) <= channel1Max) & ...
(I(:,:,2) >= channel2Min ) & (I(:,:,2) <= channel2Max) & ...
(I(:,:,3) >= channel3Min ) & (I(:,:,3) <= channel3Max);
BW = sliderBW;
% Initialize output masked image based on input image.
maskedRGBImage = RGB;
% Set background pixels where BW is false to zero.
maskedRGBImage(repmat(~BW,[1 1 3])) = 0;
end

However, when I apply this function for a batch of images in Image batch processor, I’m only getting the binary masks (the selected objects are white and a black background) as outputs.

Can you tell me how to get the objects in my image batch as RGB with black background?

NOTE:-

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

You need to call it in a loop over all your images, like

folder = pwd; % Whatever.
filePattern = fullfile(folder, '*.png');
fileList = dir(filePattern);
for k = 1 : numImages
% Read in original image
thisFileName = fullfile(fileList(k).folder, fileList(k).name);
fprintf('Reading "%s".\n', thisFileName);
rgbImage = imread(thisFileName);
% Do color segmentation.
[mask, maskedRGBImage] = createMask(rgbImage);
% Now display the three images
subplot(2, 2, 1);
imshow(rgbImage)
subplot(2, 2, 2);

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet