在我的Android项目中,我当前正在使用Imebra库从dicom文件中提取图像帧并将其另存为位图。之后,我使用ffmpeg从这些帧创建视频。到目前为止,一切工作都很好,但是我唯一关心的是我是否将使用Imebra库中的以下方法来降低质量或信息:
Image image = imageIterator.next();
TransformsChain chain = transform(image);
Bitmap bitmap = getBitmap(image, chain);
此外,如果我通过将图像帧另存为位图来使用任何信息,是否可以将它们另存为原始格式(原始是指imebra.Image
,我不确定是否与.raw格式相同) ?)并直接与ffmpeg一起使用?
答案 0 :(得分:0)
通过DrawBitmap::getBitmap
获得的图像始终是每像素24位RGB的RGB:如果图像在每个颜色通道上使用8位以上,则会丢失信息(例如,丢失16位灰度图像像素信息的低8位。
通过避免使用DrawBitmap::getBitmap
并直接直接应用变换(VOI / LUT,颜色变换,高位变换),可以使每个像素数获得更高的位数。
在拥有Image
并具有所需的色彩空间和每像素位数之后,请使用Image::GetReadingDataHandler
访问基础内存图像并为ffmpeg生成位图。
披露:我是Imebra的作者。