- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的原始图像是 DICOM 格式,我想将其保存为无损 jpg 格式(或者至少保留尽可能多的信息!!!)。我怎样才能在Python中做到这一点?目前,我正在使用以下代码来生成有损 png 图像。我将其称为有损 png,因为当我通过 dicom 浏览器查看 dicom 图像时,png 图像看起来与 dicom 图像不同。另外,如何修改此图像以获得 jpg 图像而不是 png 图像。
import numpy as np
import png
import pydicom
ds = pydicom.dcmread("./MyImage.dcm")
shape = ds.pixel_array.shape
# Convert to float to avoid overflow or underflow losses.
image_2d = ds.pixel_array.astype(float)
# Rescaling grey scale between 0-255
image_2d_scaled = (np.maximum(image_2d,0) / image_2d.max()) * 256
# Convert to uint
image_2d_scaled = np.uint8(image_2d_scaled)
# Write the PNG file
with open("out.png", 'wb') as png_file:
w = png.Writer(shape[1], shape[0], greyscale=True)
w.write(png_file, image_2d_scaled)
最佳答案
丢失信息的问题取决于像素深度,而不是图像压缩。您的 DICOM 图像可能每像素大约有 11 位(从 -1024 到 1023),甚至可能更多。您可以将其转换为 8 位图像,而无需设置强度窗口。
这意味着值 -1024 的原始像素变成黑色,+1023 的像素变成白色,但图像最重要的部分,从 -100 到 +300 左右变成平均灰色。如果您对肺部感兴趣,则重要值较低,如果您想查看骨骼,则重要值较高,等等。最重要的是,您无法在单个 png/jpg/bmp 图像上看到 DICOM 图像的所有部分。您需要一个特殊的查看器,它可以设置灰度级。最常见的非医疗格式是 TIFF,它可以处理全像素深度,但您仍然需要一个特殊的查看器。
关于python - 将 DICOM 图像保存为无损 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52633803/
我正在寻找一个专门用于进一步压缩Jpeg而不改变图像的库。我找到了PackJpeg,但它不提供任何源代码,并且您不允许在商业上使用它。 最佳答案 在PackJPG page上,有一个指向JPEG Op
对于我的视频隐写项目(java),我需要将连续的 PNG 编码到电影文件中。我尝试了xuggler,但我得到了压缩。(由于隐藏在png图像的LSB中的数据在下次我从视频中提取帧时会丢失) 因为我需要稍
我想根据一个或多个模型的属性来过滤 Backbone 集合。我已经阅读了这个问题,我注意到讨论最多的解决方案是简单地使用 this.where({"applicationType": applicat
有没有办法使用 Python 或使用命令行无损将 PDF 旋转 90 度? 我正在寻找真正的旋转,而不仅仅是在 PDF 中添加“/ROTATE 90”,因为之后我必须通过 Hylafax 发送 PDF
我目前正在尝试在 FFMPEG 上使用 H264 对 RGB24 文件进行无损压缩。但是,H264 压缩(RGB24 -> YUV444)中使用的色彩空间转换已被证明是有损的(我猜测是由于量化误差)。
我目前正在处理无损 JPEG 文件(不是 JPEG-LS)。很难找到任何文件来测试我的应用程序。 特别是我需要包含重置间隔标记、多个 DC 霍夫曼表、多个场景或注释标记的文件。 你知道我在哪里可以找到
我正在尝试无损压缩图像,为了利用规律性,我想将图像从 RGB 转换为 Y'CbCr。 (我所说的 RGB 和 Y'CbCr 的具体细节在这里并不重要;RGB 数据由三个字节组成,我有三个字节来存储结果
我正在尝试仅使用 JavaScript 和 HTML5 自己创建 DICOM 查看器。最近几天我一直在研究这个项目,现在我成功解析了我需要的所有文本信息,并且我还可以正确读取和显示未压缩的灰度和 RG
Google 的 PageSpeed 工具告诉我优化我的 PNG 图像,这些图像在 Photoshop 中保存用于网络。在研究了无损 PNG 压缩选项后,我下载了 ImageOptim 并通过它放了一
我需要压缩视频流以通过网络将其从 C++ 库传输到 Java 平台 (Android) 并在那里解压缩。要求如下: 该库必须可用于 Android 平台和 C++(或者,2 个使用通用格式的独立库)
使用 ffmpeg h264(无损)编码/解码视频的见解 所以我在编码部分做了一些工作,用 264 编码一个 avi,但是 VLC 不会播放它,但是 Totem 会。解码同一个文件证明很麻烦。 (我想
我是一名优秀的程序员,十分优秀!