как отобразить / обновить черно-белое изображение с помощью функции " 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 тип? Или вы знаете другие альтернативы, чтобы решить эту проблему?
820   1  

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

    Ничего не найдено.