13 个版本
新版本 0.7.1 | 2024 年 8 月 13 日 |
---|---|
0.7.0 | 2024 年 4 月 25 日 |
0.2.2 | 2023 年 11 月 21 日 |
0.2.0 | 2023 年 7 月 23 日 |
0.1.0-rc.1 | 2021 年 11 月 18 日 |
在 图像 中排名 364
每月下载量 1,675
在 4 个 crate 中使用
2.5MB
41K SLoC
DICOM-rs pixeldata
本子项目面向 DICOM-rs 生态系统用户。它提供了处理 DICOM 像素数据的结构,并负责将像素数据元素解码为图像或多维数组。
本 crate 是 DICOM-rs 项目的组成部分。
lib.rs
:
本 crate 包含 DICOM 像素数据处理器,并负责解码各种形式的原生和压缩像素数据(如 JPEG 无损),并将其转换为更易用的数据结构。
dicom-pixeldata
目前在纯 Rust 中支持少量但不断增加的 DICOM 图像编码。为了弥补当前的差距,本库与 GDCM 绑定 集成,支持更广泛的编码。此集成在 Cargo 功能 "gdcm" 中,需要 CMake 和 C++ 编译器。
dicom-pixeldata = { version = "0.7", features = ["gdcm"] }
解码像素数据后,解码数据可以转换为
此转换包括可能的模态和感兴趣值(VOI)转换。
WebAssembly 支持
本库通过以下两种措施在 WebAssembly 中工作
- 确保禁用 "gdcm" 功能。这允许 crate 为 WebAssembly 编译,但代价是支持更少的压缩算法。
- 设置
wasm-bindgen-rayon
或禁用rayon
功能。
示例
将 DICOM 对象转换为动态图像(需要 image
功能)
use dicom_object::open_file;
use dicom_pixeldata::PixelDecoder;
let obj = open_file("dicom.dcm")?;
let image = obj.decode_pixel_data()?;
let dynamic_image = image.to_dynamic_image(0)?;
dynamic_image.save("out.png")?;
将DICOM对象转换为ndarray(需要ndarray
功能)
use dicom_object::open_file;
use dicom_pixeldata::PixelDecoder;
use ndarray::s;
let obj = open_file("rgb_dicom.dcm")?;
let pixel_data = obj.decode_pixel_data()?;
let ndarray = pixel_data.to_ndarray::<u16>()?;
let red_values = ndarray.slice(s![.., .., .., 0]);
为了参数化转换,请传递一个转换选项值给_with_options
变体方法。
use dicom_object::open_file;
use dicom_pixeldata::{ConvertOptions, PixelDecoder, VoiLutOption};
let obj = open_file("dicom.dcm")?;
let image = obj.decode_pixel_data()?;
let options = ConvertOptions::new()
.with_voi_lut(VoiLutOption::Normalize)
.force_8bit();
let dynamic_image = image.to_dynamic_image_with_options(0, &options)?;
有关可用选项,包括每个方法的默认行为,请参阅ConvertOptions
。
依赖项
~6–18MB
~225K SLoC