gpt4 book ai didi

python - 将原始字节转换为图像

转载 作者:行者123 更新时间:2023-12-01 08:32:10 26 4
gpt4 key购买 nike

我有一个包含 240x320 图像的文件,但其字节格式是我在十六进制编辑器中打开的,并得到了类似于数组 16 列 4800 raw 的内容。

我对此完全陌生,这就是为什么我遇到麻烦,我尝试使用 python 脚本,但它在第 17 行 data = columnvector[0][i]: 中给出了错误:

IndexError: list index out of range.

我尝试过 java 代码,但这也是一个错误,我想尝试一些 c# 代码,但我找到的代码都没有解释如何将我的文件提供给代码。这是Python代码

import csv
import sys
import binascii
csv.field_size_limit(500 * 1024 * 1024)

columnvector = []
with open('T1.csv', 'r') as csvfile:
csvreader = csv.reader(csvfile,delimiter=' ', quotechar='|')
for row in csvreader:
columnvector.append(row)
headers =['42','4D','36','84','03','00','00','00','00','00','36','00','00','00','28','00','00','00',
'40','01','00','00','F0','00','00','00','01','00','18','00','00','00','00','00','00','84','03','00','C5','00',
'00','00','C5','00','00','00','00','00','00','00','00','00','00','00']

hexArray=[]
for i in range(0,76800):
data = columnvector[0][i]
hexArray.extend([data,data,data])

with open('T1.txt', 'wb') as f:
f.write(binascii.unhexlify(''.join(headers)))
f.write(binascii.unhexlify(''.join(hexArray)))

我想使用任何方法将文件转换为图像,老实说,我不在乎使用什么方法,只要它能完成工作即可。

这是一些文件 https://github.com/Mu-A/OV7670-files/tree/Help

最佳答案

您可以将二进制数据转换为图像,而无需编写任何Python,只需在终端中使用ImageMagick即可。它包含在大多数 Linux 发行版中,并且适用于 macOS 和 Windows。

如果您的图像是 320x240,则应该是:

  • 如果是单 channel (灰度),则为 320 * 240 字节长,或
  • 如果是 3 channel RGB,则为 320 * 240 * 3。

由于您的图像是 76800,我假设它们是灰度的。

因此,在终端中,要将原始数据转换为 JPEG,请使用:

magick -depth 8 -size 320x240 gray:T1  result.jpg

或者,如果您使用的是 ImageMagick 版本 6,请使用:

convert -depth 8 -size 320x240 gray:T1  result.jpg

如果您想要具有自动对比度拉伸(stretch)的 PNG,请使用:

magick -depth 8 -size 320x240 gray:T1 -auto-level result.png

不幸的是,你的图像没有任何合理的结果。以 T1 为例:

enter image description here

直方图看起来确实有些合理:

enter image description here enter image description here

<小时/>

我认为你有一些根本性的错误,所以我会尝试回到第一原则来调试它。我会用手电筒照射 window ,或者将相机对准 window ,保存一张名为 bright.dat 的图片,然后用黑卡盖住镜头,拍摄另一张名为 dark.dat< 的图像。/。然后我会绘制数据的直方图,看看亮的是否在最右端,暗的是否在最左端。制作这样的直方图:

magick -depth 8 -size 320x240 Gray:bright.dat histogram:brightHist.png

和:

magick -depth 8 -size 320x240 Gray:dark.dat histogram:darkHist.png

关于python - 将原始字节转换为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53864448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com