2024-05-26 14:20:55 发布
网友
我有一个Y视频平面的原始文件(y.raw)从原始视频帧格式YUV (YUV422_SEMI_PLANAR)中提取出来。如何将这个y.raw转换为图像png或jpg?在
(y.raw)
(YUV422_SEMI_PLANAR)
y.raw
你基本上得到了一个没有打包或交错的单通道灰度图像。所以你有几个选择:
在终端的命令行执行ImageMagick
如果您像大多数Linux发行版一样安装了ImageMagick(或者您可以在Mac和Windows上免费安装),您可以在终端中将其转换成这样。在
假设它是640x480像素和8位,您想要一个PNG:
convert -depth 8 -size 640x480 gray:y.raw result.png
假设它是1024x768像素和16位,您想要一个对比度拉伸的JPG:
通过NetPBM PGM格式和Photoshop或GIMP
假设您没有ImageMagick,您可以将文件制作成NetPBMPGM(便携式灰色地图),您可以在GIMP,Paint,feh,Adobe Photoshop中查看/编辑/保存:
PGM
GIMP
Paint
feh
{ printf "P5\n640 480\n255\n"; cat y.raw; } > result.pgm
如果你不幸地在Windows上,并且想这样做,我想应该是这样的:
echo "P5" > header.txt echo "640 480" >> header.txt echo "255" >> header.txt copy /b header.txt+y.raw result.ppm
Python
如果你真的,真的想写一堆Python,它可能是这样的:
#!/usr/local/bin/python3 from PIL import Image file=open("y.raw",'rb') rawdata=file.read() file.close() imgsize = (640,480) # Use the PIL raw decoder img = Image.frombytes('L',imgsize,rawdata) img.save('result.png')
如果其他人正在阅读这篇文章,并希望他们有一帧Y数据可以玩,那么您可以使用ImageMagick轻松创建一个包含黑白渐变的模拟图像,如下所示:
convert -size 640x480 gradient: -depth 8 gray:y.raw
使用ls时将显示如下:
ls
-rw-r r 1 mark staff 307200 23 Mar 10:05 y.raw
你基本上得到了一个没有打包或交错的单通道灰度图像。所以你有几个选择:
在终端的命令行执行ImageMagick
如果您像大多数Linux发行版一样安装了ImageMagick(或者您可以在Mac和Windows上免费安装),您可以在终端中将其转换成这样。在
假设它是640x480像素和8位,您想要一个PNG:
假设它是1024x768像素和16位,您想要一个对比度拉伸的JPG:
^{pr2}$通过NetPBM PGM格式和Photoshop或GIMP
假设您没有ImageMagick,您可以将文件制作成NetPBM
PGM
(便携式灰色地图),您可以在GIMP
,Paint
,feh
,Adobe Photoshop中查看/编辑/保存:如果你不幸地在Windows上,并且想这样做,我想应该是这样的:
Python
如果你真的,真的想写一堆Python,它可能是这样的:
如果其他人正在阅读这篇文章,并希望他们有一帧Y数据可以玩,那么您可以使用ImageMagick轻松创建一个包含黑白渐变的模拟图像,如下所示:
使用
ls
时将显示如下:相关问题 更多 >
编程相关推荐