2

我目前正在为一个满足我的网络摄像头项目的 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;生效。

有什么方法可以让我控制视频的颜色图吗?

4

1 回答 1

1

彩色图像(包括视频帧)使用 3 通道 RGB 定义。当您只有 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 通道,或者将单个通道创建为多个通道的组合。

于 2012-10-21T12:25:54.850 回答