如何在 MATLAB 中使用 "set" 函数 display/update 黑白图像

how to display/update black and white image using "set" function in 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 

输出图像是蓝黄相间的,不是黑白相间的。网上说当CDatauint8时,输出颜色为RGB;当 logical 时,输出为黑白。谁能告诉我如何将 CData 设置为 logical 类型?或者,您知道解决这个问题的其他方法吗?

如果CDataM x N x 3,则显示的数据只会是RGB。如果它只是 M x N,它将使用坐标区的颜色图来显示。在您的情况下,它使用默认颜色图 (parula),因此您需要将输入转换为 RGB 或使用 gray 颜色图显示黑白图像。

RGB 方法

set(handles, 'CData', repmat(IM, [1 1 3]))

色图方法

hFigure = figure(1);
set(hFigure,'Position', [50, 250, 400, 300]);

IM1 = getdata()  % get frame from video object

handles = image(IM1);
colormap(hFigure, gray(2))