matlab - 如何在 MATLAB 中使用 "set"函数显示/更新黑白图像

标签 matlab image-processing matlab-figure colormap

我正在做一个关于视频处理的项目,其中使用以下代码处理、显示和更新图像:

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;当逻辑时,输出将为黑白。任何人都可以告诉我如何将 CData 设置为 逻辑 类型吗?或者,您知道解决此问题的其他替代方案吗?

最佳答案

如果CDataM 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/

相关文章:

multithreading - 在MPI_Recv变量之前连续多次使用MPI_Send变量

algorithm - 寻找 "closing curves connecting with respect to points"算法

java - ImageJ(Java插件): auto threshold method doesn't work

java - 需要一个函数来限制一条线(通过其坐标已知)的长度

matlab - 在 Matlab 中添加向量作为图例

matlab - 我如何在matlab中轻松计算一些数字的总和

matlab - 运行m文件时,如何在Matlab的命令 View 中输出换行符?

matlab - 在数组中查找 n 个最小值

matlab - matlab中如何检查数组的起始元素是否相同

matlab - 按 2 个变量分组,一个变量具有独特的颜色,另一个变量具有独特的形状