как отобразить / обновить черно-белое изображение с помощью функции " set " в MATLAB
Я делаю проект по обработке видео, в котором изображения обрабатываются, отображаются и обновляются с помощью кода ниже:
hFigure=figure(1);
set(hFigure,'Position', [50, 250, 400, 300]);
IM1=getdata() % get frame from video object
%initialise
figure(1)
handles=image(IM1);
IM1=binarize(IM1);
Loop %update frame
IM1=getdata() % get frame from video object
IM1=binarize(IM1);
set(handles,'CData',IM1);
end loop
Выходное изображение будет синим и желтым, а не черно-белым. Онлайн-инструкция говорит, Когда
CData является uint8, то выходной цвет будет RGB; когда logical, выход будет B&W. может ли любое тело сказать мне, как установить CData в logical тип? Или вы знаете другие альтернативы, чтобы решить эту проблему? 1 ответ:
Отображаемые данные будут RGB только в том случае, если
CDataявляетсяM x N x 3. Если это толькоM x N, он будет отображаться с помощью цветовой карты осей. В вашем случае используется цветовая карта по умолчанию (parula), поэтому вы хотите либо преобразовать входные данные в RGB, либо использовать цветовую картуgrayдля отображения черно-белого изображения.Подход RGB
set(handles, 'CData', repmat(IM, [1 1 3]))Colormap Approach
hFigure = figure(1); set(hFigure,'Position', [50, 250, 400, 300]); IM1 = getdata() % get frame from video object handles = image(IM1); colormap(hFigure, gray(2))
Comments