如何在 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
输出图像是蓝黄相间的,不是黑白相间的。网上说当CData
为uint8
时,输出颜色为RGB;当 logical
时,输出为黑白。谁能告诉我如何将 CData
设置为 logical
类型?或者,您知道解决这个问题的其他方法吗?
如果CData
为M 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))
我正在做一个关于视频处理的项目,其中使用以下代码处理、显示和更新图像:
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
时,输出为黑白。谁能告诉我如何将 CData
设置为 logical
类型?或者,您知道解决这个问题的其他方法吗?
如果CData
为M 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))