有没有一种方法来获取像素的颜色值并将该值存储在.txt文件中?

时间:2019-07-29 11:20:43

标签: python

我希望通过脚本“扫描”特定图像,并将像素的颜色值作为.txt文件内部的输出给出,类似于:'1,1; 255,255,255'(x,y; r ,g,b)。

我了解python的基本知识,也知道如何创建txt,但不涉及图像处理。

任何帮助都很感谢!

2 个答案:

答案 0 :(得分:2)

使用PIL

config.js

然后写入新文件

config.jsx

合并两个代码

from PIL import Image

img = Image.open(...)
width, height = img.size

for x in range(width):
  for y in range(height):
    print(x+","+y+":"+img.getpixel((x, y)))

答案 1 :(得分:1)

另一种方法是使用openCV,我认为这要容易得多。

import cv2

img = cv2.imread(img_name)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

h,w,c = img.shape

with open('myfile.txt', 'a') as file:
    for x in range(w):
        for y in range(h):
             str_to_write = "%d,%d:%d,%d,%d\n" % (x,y,img[y,x,0],img[y,x,1],img[y,x,2])
             file.write(str_to_write)

当然,对每个人来说,但是OpenCV允许您访问诸如索引之类的像素值,这对我来说更有意义,尽管需要执行额外的转换为rgb的步骤,如果要避免这种情况,您可以这样做

import cv2

img = cv2.imread(img_name)

h,w,c = img.shape

with open('myfile.txt', 'a') as file:
    for x in range(w):
        for y in range(h):
            str_to_write = "%d,%d:%d,%d,%d\n" % (x,y,img[y,x,2],img[y,x,1],img[y,x,0])
            file.write(str_to_write)