Как применить функцию цветового порога в пакетном процессоре изображений, чтобы получить маскированные изображения RGB вместо двоичных?
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
Однако, когда я применяю эту функцию к пакету изображений в пакетном процессоре изображений, я получаю только бинарные маски (выбранные объекты имеют белый и черный фон) в качестве выходных данных.
Можете ли вы сказать мне, как получить объекты в моем пакете изображений в виде RGB с черным фоном?
ПРИМЕЧАНИЕ.
Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.
Вам нужно вызвать его в цикле по всем вашим изображениям, например
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);
СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ