#!/usr/local/bin/python3
import sys
from PIL import Image
# Check image supplied as argument
if len(sys.argv)!=2:
sys.exit("ERROR: Please specify a file")
# Load image
img=Image.open(sys.argv[1])
# Retrieve dimensions
w,h=img.size
# Make RGB if palettised
if img.mode=="P":
img=img.convert('RGB')
p=img.load()
for y in range(0,h):
for x in range(0,w):
r,g,b=p[x,y]
str="%02x%02x%02x "%(r,g,b)
print(str,end='')
print()
import cv2
img = cv2.imread('image.png')
print(img.shape)
cy=img.shape[0]
cx=img.shape[1]
f = open('img.txt', 'w')
for row in img:
for col in row:
str="%02x%02x%02x"%(col[0], col[1], col[2])
f.write(str)
f.close()
我不太会说Python,但我已经试着学了一些,这似乎符合你的要求。我可能不是很python,但至少它只使用PIL,它比OpenCV小很多,安装起来也更容易!在
使用ImageMagick可以在命令行中完成,而不需要Python,ImageMagick安装在大多数Linux发行版上,适用于macOS和Windows。在
它将适用于PNG,JPEG和大约200种其他图像类型。让我们制作一个示例图像:
让我们把它放大,这样你就能看到它(我本来可以一次性完成的):
^{pr2}$现在针对您的问题,我可以将其转换为原始RGB(通过解释所有图像大小、调色板、压缩和标题)并通过
xxd
进行十六进制格式:如果要去掉前面的地址和结尾的点,可以使用:
sed
命令表示。。。“只要你看到两个空格,就把它们和后面的所有空格都去掉。删除所有包含冒号和空格的内容。“。在或者是普通垃圾场更好:
注意:如果使用ImageMagickv7+,那么在上面的所有示例中,将
convert
替换为magick
。在opencv可以简单地读取图像。在
相关问题 更多 >
编程相关推荐