我需要找到一种将二进制文件转换为图像的快速方法。
二进制文件由一个 NNN 矩阵组成,我想将 0 与一种颜色相关联,将 1 与另一种颜色相关联。
我需要对 1000 多个二进制文件执行此操作。
如果可能的话,我想避免使用 MatLab,是否有任何工具/软件(适用于 unix)可以帮助我?
编辑:
This正是我要找的!
在页面底部,它说:“提示:要处理许多文件,请使用 shell 脚本将此 URL 和所需的参数传递给 wget,然后将输出定向到文件”
然而我不能这样做。
我试过:
wget --post-data="blocksize=10&width=10&offset=0&markval=-1&autoscale=0" \
--post-file="userfile=/path.../filename" http://www.ryanwestafer.com/stuff/bin2img.php \
> output
但我得到的只是在我的本地文件夹中下载的原始页面!
最佳答案
如果你有安装了 PIL(图像)库的 python:
import Image
def colormap(s):
s_out = []
for ch in s: # assume always '\x00' or '\x01'
if s == '\x00':
s_out.append('\x00') # black
else:
s_out.append('\xFF') # white
return ''.join(s_out)
N= 50 # for instance
fin = open('myfile.bin','rb')
data = fin.read(N*N) # read NxN bytes
data = colormap(data)
# convert string to grayscale image
img = Image.fromstring('L', (N,N), data )
# save to file
img.save('thisfile.png')
data = fin.read(N*N) # next NxN bytes
data = colormap(data)
img = Image.fromstring('L', (N,N), data )
img.save('thisfile2.png')
这可以根据需要轻松修改为循环和序列文件名等
关于image - 将二进制文件转换为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14092289/