我正在做一个关于视频处理的项目,其中使用以下代码处理、显示和更新图像:
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;当逻辑
时,输出将为黑白。任何人都可以告诉我如何将 CData
设置为 逻辑
类型吗?或者,您知道解决此问题的其他替代方案吗?
最佳答案
如果CData
为M x N x 3
,则显示的数据仅为RGB。如果它只是 M x N
,它将使用轴的颜色图来显示。在您的情况下,它使用默认颜色图 (parula
),因此您需要将输入转换为 RGB 或使用灰色
颜色图来显示黑白图像.
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))
关于matlab - 如何在 MATLAB 中使用 "set"函数显示/更新黑白图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42926086/