Java 电影帧的原始提取

Java 电影帧的原始提取,java,image,scala,image-processing,ffmpeg,Java,Image,Scala,Image Processing,Ffmpeg,我想从灰度电影中提取图像。每个像素使用16位编码。由于这是一部技术电影,我需要在不进行处理的情况下提取每个像素的值,因为这些值线性映射到一个物理量(红外相机的热图)。我使用的是Scala,我没有找到任何适合直接提取的解决方案(Scala或Java,但我是初学者)。因此,我打算使用ffmpeg提取磁盘上的各个帧,然后将它们作为Scala中的BuffereImage加载并处理它们 这是一个好方法吗?我应该使用哪种格式来避免数据中的任何转换?我希望每个提取的帧都尽可能地“原始”?可以直接输出包含上述值

我想从灰度电影中提取图像。每个像素使用16位编码。由于这是一部技术电影,我需要在不进行处理的情况下提取每个像素的值,因为这些值线性映射到一个物理量(红外相机的热图)。我使用的是Scala,我没有找到任何适合直接提取的解决方案(Scala或Java,但我是初学者)。因此,我打算使用ffmpeg提取磁盘上的各个帧,然后将它们作为Scala中的BuffereImage加载并处理它们


这是一个好方法吗?我应该使用哪种格式来避免数据中的任何转换?我希望每个提取的帧都尽可能地“原始”?可以直接输出包含上述值的csv吗?

不看样本的一般答案是使用段复用器

ffmpeg -i in.mj2 -f segment -segment_time 0.01 -map 0 -segment_format data frame%d.raw
但是,由于输入编解码器是JPEG-2000,因此您可以运行

ffmpeg -i in.mj2 -c copy frame%d.jp2 

在不看示例的情况下,一般的答案是使用段复用器

ffmpeg -i in.mj2 -f segment -segment_time 0.01 -map 0 -segment_format data frame%d.raw
但是,由于输入编解码器是JPEG-2000,因此您可以运行

ffmpeg -i in.mj2 -c copy frame%d.jp2 


最简单的选择可能是使用图像处理库,如OpenCV。它提供了一些实用程序,可以打开范围广泛的文件并提取所需的信息。

最简单的选择可能是使用图像处理库,如OpenCV。它提供了打开各种文件和提取所需信息的实用程序。

您能发布一个简短的示例吗?最好是具有已知值的(在某些像素处)。不幸的是,数据包含在保密协议中。您能生成相同格式的合成数据吗?我不知道数据是如何生成的,我无法重新创建它。。。我只知道该文件是有效的,没有损坏,因为我可以在mplayer中打开mj2文件。你能发布一个简短的示例吗?最好是具有已知值的(在某些像素处)。不幸的是,数据包含在保密协议中。您能生成相同格式的合成数据吗?我不知道数据是如何生成的,我无法重新创建它。。。我只知道该文件有效且未损坏,因为我可以在mplayer中打开mj2文件。我已经了解到,不同摄像头的原始格式不同,第一个命令的原始文件格式是什么?第二个命令生成我无法打开的jp2文件。然而,当我应用它时,我在这里得到消息:。特别是,流#0:0:Video在输入(l.20)和输出(l.32)中是不同的。这就是生成的jp2无法读取的原因吗?我已经了解到不同摄像机的原始格式不同,第一个命令的原始文件格式是什么?第二个命令生成的jp2文件我无法打开。然而,当我应用它时,我在这里得到消息:。特别是,流#0:0:Video在输入(l.20)和输出(l.32)中是不同的。这就是生成的jp2无法读取的原因吗?Thsi更像是一个注释,而不是一个实际的答案。好吧,使用ffmpeg不是一个好方法,因为它并不简单,OpenCV允许将图像解码为矩阵(一种非常“原始”的格式),输出csv将是微不足道的。你对答案还有什么期望?Thsi更像是一个评论,而不是一个实际的答案。好吧,使用ffmpeg不是一个好方法,因为它并不简单,OpenCV允许将图像解码为矩阵(一种非常“原始”的格式),输出csv将是微不足道的。你对答案还有什么期望?