我希望通过脚本“扫描”特定图像,并将像素的颜色值作为.txt文件内部的输出给出,类似于:'1,1; 255,255,255'(x,y; r ,g,b)。
我了解python的基本知识,也知道如何创建txt,但不涉及图像处理。
任何帮助都很感谢!
答案 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)