我有一个需要灰度格式视频的程序。
使用VideoReader
我收到了一个视频文件,该文件使用VideoReader导入,如下所示:
所以我想将VideoFromat更改为灰度。我找到了这个代码并运行它:
虽然它确实输出了一个灰度视频,但质量已经大大降低了(很多细节都在一起模糊了,并且在视频中看起来有很多瑕疵)。同一帧的一部分显示了我的意思:
我还将原始视频文件加载到ImageJ中作为灰度,并将其保存为"未压缩的AVI",同样的事情发生。
所以我的问题是
(a)为什么会发生这种情况?
(b)执行转换的最佳方法是什么?
由于
答案 0 :(得分:2)
这里的问题是您的图像深度为24位,但您使用链接的解决方案将其转换为8位灰度。我认为ImageJ默认做同样的事情。
我认为您可以通过在行
中替换255(2 ^ 24)-1来解决此问题 map = [(0:255)' (0:255)' (0:255)']/255;
和uint8到下一行的uint32。
答案 1 :(得分:2)
图像中的图像质量下降看起来不像是由转换为灰度造成的...它看起来更像是压缩或子采样伪像。 VideoWriter
默认使用压缩的Motion JPEG格式。您确定使用的是'Uncompressed Avi'
吗?
此外,PROFILE
VideoWriter
参数的其中一个选项是Grayscale AVI
。尝试使用它。您甚至可能不必致电rgb2gray
。