使用 Imagemagick 将 RAW 转换为 PNG

Posted

技术标签:

【中文标题】使用 Imagemagick 将 RAW 转换为 PNG【英文标题】:Convert RAW to PNG with Imagemagick 【发布时间】:2020-06-14 22:00:17 【问题描述】:

我正在尝试使用 Imagemagick 将 RAW 图像转换为 PNG。 我使用的 Imagemagick 版本是 6.7.8-9。

要转换的RAW图像是:

https://drive.google.com/file/d/1V1c-ytjkLaCM3KbAc6Yxj2nfWzNkYohc/view?usp=sharing

我的客户给了我一张包含 1000 多张 RAW 图像的大 RAW 图像,它是从 Dicom 生成的。首先,我使用命令只裁剪了一张图像(裁剪命令无法正常工作,因此使用了转换):

convert -size 512x512 -depth 16 UYVY:original.raw result.raw

result.raw 在 ImageJ 上看起来不错。 现在,我不知道如何从中获取 PNG。 我测试了一些命令:

这个产生了一个非常糟糕的质量:

convert -size 512x512 -depth 16 gray:result.raw result.png

这张图片是绿色的:

convert -size 512x512 -depth 16 uyvy:result.raw result.png

如果我在 ImageJ 上打开 result.raw 并保存为 PNG,它可以完美运行。

【问题讨论】:

正确的结果是什么样的?从 ImageJ 发布屏幕快照,显示正确的结果。您的原始数据是有符号还是无符号 16 位? 试试convert -size 512x512 -depth 16 uyvy:result.raw -separate +channel result.png 并选择您认为最好的频道。 @fmw42 感谢您的回复。您的命令会生成更好的图像,但它们看起来仍然与原始 RAW 图像不同。这是从您的命令生成的 PNG 之一:link 这个 PNG 是从 ImageJ 创建的,这是我需要的:link 我的 RAW 是 16 位签名的。我的客户刚刚告诉我 RAW 是 1ch(mono),所以应该转换为 3ch(rgb) 灰色,然后再转换为 PNG。那么 PNG 就不会是一种奇怪的颜色了。 我认为问题在于 ImageMagick 正在处理为无符号 16 位并且您的数据已签名。我不知道 ImageMagick 是否可以处理签名数据。您应该在 ImageMagick 论坛上询问是否有读取签名的原始图像数据的方法。 实际上,我的客户说 RAW 应该在 ImageJ 上以“16bit signed and little endian”打开。所以,正确的图像应该是这样的:link 现在,问题是如何添加“签名”和“小端”。我尝试了类似convert -size 512x512 -depth 16 -define png:swap-bytes=on -define signed uyvy:result.raw result.jpg 的方法,但没有成功。 【参考方案1】:

我从 Imagemagick 社区得到了答复。首先,下面从原始原始图像中获取第一张图像的代码是错误的。

convert -size 512x512 -depth 16 UYVY:original.raw result.raw

这是正确的方式(512*512*2bytes=524228)

head --bytes 524288 original.raw >firstimage.raw

然后转换成PNG:

magick -size 512x512 -depth 16 gray:firstimage.raw -evaluate AddModulus 50% -auto-level x.png

【讨论】:

【参考方案2】:

这是 ImageMagick 中的另一种方式,我认为它对您的签名原始数据更直观。我只是指定使用-define quantum-format=signed 对数据进行签名。然后使用-auto-level 将结果拉伸到全动态范围。

convert -size 512x512 -depth 16 -define quantum:format=signed gray:original.raw -auto-level result.png

如果使用 ImageMagick 7,则将 convert 替换为 magick。

【讨论】:

以上是关于使用 Imagemagick 将 RAW 转换为 PNG的主要内容,如果未能解决你的问题,请参考以下文章

ImageMagick 未授权将 PDF 转换为图像

使用 ImageMagick 将 gif 转换为 png 时出现“转换:不正确的图像标题”错误

使用imagemagick将整个文件夹转换为灰度?

ImageMagick 不会将 .png 转换为 .jpg

ImageMagick 命令行:将 PDF 转换为高清图像

使用imagemagick将EPS转换为PNG时如何添加填充?