在将视频转换为灰度时,我没有获得完全灰色的图像?

时间:2014-03-28 20:10:21

标签: matlab computer-vision

这是我的代码。输出不完全是灰色的。有人能告诉我代码中的问题是什么吗?

 obj = VideoReader('shaky_cars.avi');
height = obj.Height;
width = obj.Width;

factor = 200/height;
num=10;
intendedFrame = 20;
video = read(obj , [intendedFrame , intendedFrame+num]);

for i = 1:1+num
    grayVideo(:,:,i) = double(imresize((rgb2gray(video(:,:,:,i))) , factor));
end

[height , width] = size(grayVideo(:,:,1));
figure(1);imagesc(grayVideo(:,:,1));

这是输出enter image description here

2 个答案:

答案 0 :(得分:1)

几个问题:你是否打印过前后的图像,看看每一步发生了什么?

为什么要将帧转换为double类型?

建议:尝试通过uint8(grayVideo(:,:,i))将图片转换为uint8并使用灰色色图colormap(gray(256))

如果有帮助,请告诉我

答案 1 :(得分:1)

您可以使用

代替使用imagesc
 imshow(uint8(grayVideo(:,:,1)))

显示灰度图像。