hh *_* tt 3 image-processing image-formats
我正在尝试将彩色图像从 .raw 格式转换为 .jpg 或 .png 格式,我使用 ImageMagick 和以下命令提示符代码:
convert -size 768X576 -depth 8 rgb:my_image.raw my_image.jpeg
Run Code Online (Sandbox Code Playgroud)
将图像转换为 jpeg 格式是成功的,但存在一些问题: 1- 生成的图像是灰色的且没有彩色。2- 结果图像被细分为 9 个图像,作为重复的小图像网格。
当我更改rgb为 时gray,返回 3 个分离的灰色图像,其照明条件从较暗到较亮不同。我需要转换图像格式,任何人都可以帮助我如何编辑代码或任何其他能够打开图像的软件,我尝试了很多软件,但它们很有用,我使用 Windows 10。
我用自己的原始输入图像对其进行了测试,并且工作正常。
您可能使用了错误版本的 ImageMagick。
我下载的版本:ImageMagick-7.0.8-49-Q8-x64-static.exe从https://imagemagick.org/script/download.php。
在我下载的版本中,转换命令是magick.exe而不是convert。
以下命令正在运行:
magick.exe -size 768x576 -depth 8 rgb:my_image.raw my_image.jpeg.
我更喜欢用于FFmpeg格式转换。您可以从https://ffmpeg.zeranoe.com/builds/
下载它
选择:
版本:stable(当前版本为 4.1.3)。
体系结构:Windows 64 位
链接:静态。
解压 zip 文件,您只需要ffmpeg.exe.
要将raw文件转换为jpeg使用,FFmpeg您可以使用以下命令:
ffmpeg -y -video_size 768x576 -pix_fmt rgb24 -i my_image.raw -pix_fmt yuvj444p my_image.jpeg
假设您的原始文件格式是“块状”RGB(顺序:r,g,b,r,g,b,r,g,b...),请确保文件大小 = 768*576*31,327,104 字节。
只是为了确保问题不在您的输入文件中......
raw您可以使用创建合成输入图像FFmpeg并将结果转换为jpeg:
创建合成输入:
ffmpeg -y -f lavfi -i testsrc=duration=1:size=768x576:rate=1 -pix_fmt rgb24 -f image2 test_image.raw
转换合成输入:
ffmpeg -y -video_size 768x576 -pix_fmt rgb24 -i test_image.raw -pix_fmt yuvj444p test_image.jpeg
我找到了解决方案:
显然原始图像格式是“平面”RGB:
RRRRR
RRRRR
RRRRR
GGGGG
GGGGG
GGGGG
BBBBB
BBBBB
BBBBB
将其转换为 jpeg(使用FFmpeg)是一个复杂的问题:
ffmpeg -y -video_size 768x576 -pix_fmt gbrp -i m-001-1.raw -filter_complex "extractplanes=g+b+r[g][b][r],[r][g][b]mergeplanes=0x001020:gbrp[v]" -map "[v]" m-001-1.jpeg
FFmpeg不支持原始“平面”RGB 格式。
唯一接近 RGB 的“平面”是 GBR(绿色平面在前)。
我使用extractplanes和mergeplanes来重新排序颜色通道。
ImageMagick有一个更简单的解决方案:
magick.exe -depth 8 -interlace plane -size 768x576 rgb:image.raw image.jpeg
示例:
由于stackoverflow不允许上传raw文件,我上传了模拟“平面”RGB 格式的 png图像:grayscale
要测试该解决方案,请使用以下步骤:
D5IUp.png。 png为raw“平面”RGB”(.y扩展名):ffmpeg -y -i D5IUp.png -c:v rawvideo -pix_fmt gray D5IUp.y raw为jpeg:ffmpeg -y -video_size 128x96 -pix_fmt gbrp -i D5IUp.y -filter_complex "extractplanes=g+b+r[g][b][r],[r][g][b]mergeplanes=0x001020:gbrp[v]" -map "[v]" D5IUp.jpeg 使用以下命令进行批量转换的示例ImageMagick:
for %%f in (*.raw) do (magick.exe -depth 8 -interlace plane -size 768x576 rgb:"%%f" "%%~nf.jpeg")
| 归档时间: |
|
| 查看次数: |
5595 次 |
| 最近记录: |