使用 Imebra 库保存 DICOM 图像
Saving DICOM images using Imebra library
在我的 Android 项目中,我目前正在使用 Imebra 库从 dicom 文件中提取图像帧并将它们保存为位图。之后,我使用 ffmpeg 从这些帧创建视频。到目前为止一切都运行良好,但我唯一担心的是我是否会通过使用 Imebra 库中的以下方法丢失任何质量或信息:
Image image = imageIterator.next();
TransformsChain chain = transform(image);
Bitmap bitmap = getBitmap(image, chain);
此外,如果我通过将图像帧保存为位图来使用任何信息,我可以将它们保存为原始格式吗(我说的原始格式是 imebra.Image
,我不确定这是否与 .原始格式?)并直接与 ffmpeg 一起使用?
您使用 DrawBitmap::getBitmap
获得的图像始终是每像素 RGB 24 位:如果图像使用超过 8 位的每个颜色通道(例如 16 位灰度图像),您将丢失信息会丢失像素信息的低8位)。
您可以通过避免使用 DrawBitmap::getBitmap
并自己直接应用变换(VOI/LUT、颜色变换、高位变换)来获得更高的每像素位数。
在获得具有所需颜色 space 和每像素位数的 Image
之后,使用 Image::GetReadingDataHandler
访问底层内存的图像并为 ffmpeg 生成位图。
披露:我是 Imebra 的作者。
在我的 Android 项目中,我目前正在使用 Imebra 库从 dicom 文件中提取图像帧并将它们保存为位图。之后,我使用 ffmpeg 从这些帧创建视频。到目前为止一切都运行良好,但我唯一担心的是我是否会通过使用 Imebra 库中的以下方法丢失任何质量或信息:
Image image = imageIterator.next();
TransformsChain chain = transform(image);
Bitmap bitmap = getBitmap(image, chain);
此外,如果我通过将图像帧保存为位图来使用任何信息,我可以将它们保存为原始格式吗(我说的原始格式是 imebra.Image
,我不确定这是否与 .原始格式?)并直接与 ffmpeg 一起使用?
您使用 DrawBitmap::getBitmap
获得的图像始终是每像素 RGB 24 位:如果图像使用超过 8 位的每个颜色通道(例如 16 位灰度图像),您将丢失信息会丢失像素信息的低8位)。
您可以通过避免使用 DrawBitmap::getBitmap
并自己直接应用变换(VOI/LUT、颜色变换、高位变换)来获得更高的每像素位数。
在获得具有所需颜色 space 和每像素位数的 Image
之后,使用 Image::GetReadingDataHandler
访问底层内存的图像并为 ffmpeg 生成位图。
披露:我是 Imebra 的作者。