dicom - 使用 Imebra 库保存 DICOM 图像
问题描述
在我的 Android 项目中,我目前正在使用 Imebra 库从 dicom 文件中提取图像帧并将它们保存为位图。之后,我使用 ffmpeg 从这些帧创建视频。到目前为止,每件事都运行良好,但我唯一担心的是我是否会通过使用 Imebra 库中的以下方法失去任何质量或信息:
Image image = imageIterator.next();
TransformsChain chain = transform(image);
Bitmap bitmap = getBitmap(image, chain);
此外,如果我通过将图像帧保存为位图来使用任何信息,我可以将它们保存为原始格式(我的意思是原始imebra.Image
,我不确定这是否与 .raw 格式相同?)并直接与 ffmpeg 一起使用?
解决方案
您获得的图像DrawBitmap::getBitmap
始终是每像素 24 位的 RGB 图像:如果图像使用每个颜色通道超过 8 位,您将丢失信息(例如,16 位灰度图像将丢失像素信息的低 8 位)。
DrawBitmap::getBitmap
通过避免使用和直接应用自己的变换(VOI/LUT、颜色变换、高位变换),您可以获得更高的每像素位数。在您拥有Image
所需的色彩空间和每像素位之后,然后使用Image::GetReadingDataHandler
访问图像底层内存并为 ffmpeg 生成位图。
披露:我是 Imebra 的作者。
推荐阅读
- json - Flutter:无法从 api 获取 json 文件数据
- android - 尝试使用 Intent.ACTION_VIEW 时出现“找不到媒体”
- javascript - 在javascript中的数组内映射函数
- accessibility - WCAG 4.1.2:屏幕阅读器不会宣布嵌套交互式控件
- reactjs - 运行脚本以响应可选变量
- reactjs - 第一个 React-Bootstrap 单选按钮单击未触发 Formik 表单中的“触摸”
- javascript - 传递值,而不在函数中作为参数发送
- ddl - Snow Change 将与单一帐户一起使用吗?
- typescript - 变量声明/初始化 WebdriverIO
- android - 加分,即使应用程序关闭 android