csv 数据未记录在Excel中:r-红色量,g-绿色量,b-蓝色量,x,y-像素坐标

alen0pnh  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(94)

有必要创建一个Excel文件“结果.csv”与列x,y,r,g,B内循环.我有创建程序收集颜色特征种子图像.它读取两个周期这个值.像素值不写在csv文件.告诉我为什么追加功能不工作或应该使用我其他?给予我关于修复这个bug的建议.
代码:

import csv
import cv2
import os
from PIL import Image  #Подключим необходимые библиотеки.
image = Image.open("S45-3-4.jpg") #Открываем изображение.
width = image.size[1] #Определяем ширину.
height = image.size[1] #Определяем высоту.
pix = image.load() #Выгружаем значения пикселей.

for x in range(height):
  for y in range(width):
    r, g, b = pix[x, y]
    results = []
    results.append(x, y, r, g, b)
    headers = ['x', 'y', 'r', 'g', 'b']
    with open('result.csv', "w") as file:
      write = csv.DictWriter(file, delimiter=',')
      writer = csv.writer(headers)
      writer.writerows(results)

字符串
编译错误**:**E:\DiagonalsLinesColor\venv\Scripts\python.exe E:\DiagonalsLinesColor\main.pyTraceback (most recent call last):File "E:\DiagonalsLinesColor\main.py", line 14, in <module>results.append(x, y, r, g, b)TypeError: append() takes exactly one argument (5 given)
进程已完成,退出代码为% 1。


的数据

mepcadol

mepcadol1#

引发错误的原因是result.append(argument)函数通过在列表末尾添加argument来更新列表result。问题是它只需要1个参数,但您当前的代码传递了5个参数。
然而,你可能想简单地将值x, y, r, g, b存储在一个列表中,然后在最后一行传递给writer.writerows()。然后,你可以直接写result = [x, y, r, g, b]

相关问题