我目前正在为matlab工作,遇到我的网络摄像头项目。这是我的代码:
vid = videoinput('winvideo');
vidRes = get(vid, 'VideoResolution');
nBands = get(vid, 'NumberOfBands');
hImage = image( zeros(vidRes(2), vidRes(1), nBands));
preview(vid, hImage);
colormap cool;
视频显示在网络摄像头中。但是,colormap cool;
似乎对视频没有影响。我尝试用虚拟图像替换视频,colormap cool;
生效。
我有什么方法可以控制视频的色彩图吗?
答案 0 :(得分:1)
使用3个通道R G B定义彩色图像(包括视频帧)。当您只有1个通道的信息并将单个值映射到3通道RGB值时,将使用色彩映射。
例如:
img1 = rand(20,20,3);
imagesc(img);
colormap hot; % This does nothing because the image has 3 channels
img2 = rand(20,20);
imagesc(img);
colormap hot; % This works because a colormap is being used to map the 1 channel to a color
如果您想为视频使用色彩映射,则必须选择R,G或B通道,或将单个通道创建为多个通道的组合。