这是我的代码。输出不完全是灰色的。有人能告诉我代码中的问题是什么吗?
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));
这是输出
答案 0 :(得分:1)
几个问题:你是否打印过前后的图像,看看每一步发生了什么?
为什么要将帧转换为double类型?
建议:尝试通过uint8(grayVideo(:,:,i))
将图片转换为uint8并使用灰色色图colormap(gray(256))
。
如果有帮助,请告诉我
答案 1 :(得分:1)
您可以使用
代替使用imagesc imshow(uint8(grayVideo(:,:,1)))
显示灰度图像。