如何将彩色图像从 RAW 格式转换为 JPEG 格式
How to convert colored image from RAW to JPEG format
我正在尝试将彩色图像从 .raw 格式转换为 .jpg 或 .png 格式,我使用带有以下命令提示符代码的 ImageMagick:
convert -size 768X576 -depth 8 rgb:my_image.raw my_image.jpeg
图片转换为jpeg格式成功,但存在一些问题:
1- 结果图像是灰色的,没有彩色。
2- 结果图像被细分为 9 个图像,作为重复的小图像网格。
当我把rgb
改成gray
时,return我得到了3张不同光照条件下由暗到亮的灰度图。
我需要转换图像格式,任何人都可以帮助我如何编辑代码或任何其他能够打开图像的软件,我尝试了很多软件但它们很有用,我使用 windows 10.
我用我自己的原始输入图像对其进行了测试,它工作正常。
您可能使用了错误版本的 ImageMagick。
我从 https://imagemagick.org/script/download.php 下载了版本:ImageMagick-7.0.8-49-Q8-x64-static.exe
。
在我下载的版本中,转换命令是magick.exe
而不是convert
。
以下命令正在运行:
magick.exe -size 768x576 -depth 8 rgb:my_image.raw my_image.jpeg
。
我更喜欢使用 FFmpeg
进行格式转换。
您可以从 https://ffmpeg.zeranoe.com/builds/
下载
Select:
版本:稳定(当前版本为4.1.3)。
体系结构:Windows 64 位
链接:静态。
解压zip文件,只需要ffmpeg.exe
.
要使用 FFmpeg
将 raw
文件转换为 jpeg
,您可以使用以下命令:
ffmpeg -y -video_size 768x576 -pix_fmt rgb24 -i my_image.raw -pix_fmt yuvj444p my_image.jpeg
假设您的原始文件格式为 "chunky" RGB(顺序为:r,g,b,r,g,b,r,g,b...),确保文件大小为 768*576*3
= 1,327,104 字节。
请确认一下,问题不在您的输入文件中...
您可以使用 FFmpeg
创建合成输入 raw
图像并将结果转换为 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
结果(test_image.jpeg
):
我找到了解决方案:
显然原始图像格式是 "planar" 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
不支持原始 "planar" RGB 格式。
唯一接近RGB的"planar"是GBR(绿色平面在前)。
我使用 extractplanes
和 mergeplanes
对颜色通道进行重新排序。
ImageMagick
有一个更简单的解决方案:
magick.exe -depth 8 -interlace plane -size 768x576 rgb:image.raw image.jpeg
示例:
由于 Whosebug
不允许上传 raw
文件,我上传了一张 png
格式的 grayscale
模拟 "planar" RGB 的图像:
要测试解决方案,请执行以下步骤:
- 下载 image(imgur 将其命名为:
D5IUp.png
)。
- 从
png
转换为 raw
为 "planar" 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")
我正在尝试将彩色图像从 .raw 格式转换为 .jpg 或 .png 格式,我使用带有以下命令提示符代码的 ImageMagick:
convert -size 768X576 -depth 8 rgb:my_image.raw my_image.jpeg
图片转换为jpeg格式成功,但存在一些问题: 1- 结果图像是灰色的,没有彩色。 2- 结果图像被细分为 9 个图像,作为重复的小图像网格。
当我把rgb
改成gray
时,return我得到了3张不同光照条件下由暗到亮的灰度图。
我需要转换图像格式,任何人都可以帮助我如何编辑代码或任何其他能够打开图像的软件,我尝试了很多软件但它们很有用,我使用 windows 10.
我用我自己的原始输入图像对其进行了测试,它工作正常。
您可能使用了错误版本的 ImageMagick。
我从 https://imagemagick.org/script/download.php 下载了版本:ImageMagick-7.0.8-49-Q8-x64-static.exe
。
在我下载的版本中,转换命令是magick.exe
而不是convert
。
以下命令正在运行:
magick.exe -size 768x576 -depth 8 rgb:my_image.raw my_image.jpeg
。
我更喜欢使用 FFmpeg
进行格式转换。
您可以从 https://ffmpeg.zeranoe.com/builds/
下载
Select:
版本:稳定(当前版本为4.1.3)。
体系结构:Windows 64 位
链接:静态。
解压zip文件,只需要ffmpeg.exe
.
要使用 FFmpeg
将 raw
文件转换为 jpeg
,您可以使用以下命令:
ffmpeg -y -video_size 768x576 -pix_fmt rgb24 -i my_image.raw -pix_fmt yuvj444p my_image.jpeg
假设您的原始文件格式为 "chunky" RGB(顺序为:r,g,b,r,g,b,r,g,b...),确保文件大小为 768*576*3
= 1,327,104 字节。
请确认一下,问题不在您的输入文件中...
您可以使用 FFmpeg
创建合成输入 raw
图像并将结果转换为 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
结果(test_image.jpeg
):
我找到了解决方案:
显然原始图像格式是 "planar" 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
不支持原始 "planar" RGB 格式。
唯一接近RGB的"planar"是GBR(绿色平面在前)。
我使用 extractplanes
和 mergeplanes
对颜色通道进行重新排序。
ImageMagick
有一个更简单的解决方案:
magick.exe -depth 8 -interlace plane -size 768x576 rgb:image.raw image.jpeg
示例:
由于 Whosebug
不允许上传 raw
文件,我上传了一张 png
格式的 grayscale
模拟 "planar" RGB 的图像:
要测试解决方案,请执行以下步骤:
- 下载 image(imgur 将其命名为:
D5IUp.png
)。 - 从
png
转换为raw
为 "planar" 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")