将图像转换为RGB格式的文本文件,格式为三逗号分隔



在Python中,我们如何将。jpg文件转换为具有三个逗号分隔的RGB值的文本文件,其中这些三元组由一个空格分隔。例如:

0,0,200 0,0,10 10,0,0
90,90,50 90,90,10 255,255,255
100,100,88 80,80,80 15,75,255  

上面是一个3x3像素表示的图像。为每个像素提供Blue, Green和Red值,用逗号分隔。左上角像素有(蓝色=0,绿色=0,红色=200)。右上像素有(蓝色=10,绿色=0,红色=0)。右下角的像素有(蓝色=15,绿色=75,红色=255)。左下像素为(Blue=100,Green=100, Red=88)。

我可以用下面的代码将每个像素打印成一行:

import cv2
img = imread('myimage.png')
for i in img:
for j in i:
print(*j,sep=',')

有人能帮我吗?

print()有一个参数来改变n的默认结尾。然后你可以在每一行像素的末尾打印一个换行符。

import cv2
img = cv2.imread('myimage.png')
for i in img:
for j in i:
print(*j, sep=',', end=' ')
print()

这几行代码解决了我的问题,感谢user3474165:

import cv2
from pathlib import Path
path = Path('.').joinpath('images') # you shoud adjust this address upon your need
img = cv2.imread(path.joinpath('image_name')) # you should change 'image_name' upon your need
with open(path.joinpath('output.txt'), 'w') as f_out: # you should change 'output.txt' upon your need
for i in img: 
f_out.write(' '.join(['{},{},{}'.format(*j) for j in i]) + 'n') 

最新更新