非功函数writerows()
和open()
。
我有回收的图像抛出2个循环为和给予值 x,y,pix[x,y].值 *pix[x,y*]分布到 r,g,b.数组头有表和数组结果的标题适合表列 x,y,r,g,b.
代码:
enter image description here
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 = [x, y, r, g, b]
headers = ['x', 'y', 'r', 'g', 'b']
with open('seed45-3-4.csv', 'w', newline='') as f:
write = csv.writer(f, delimiter=';')
write.writerows(headers)
write.writerows(results)
字符串
控制台输出信息:
E:\LinesColor2\venv\Scripts\python.exe E:\LinesColor2\main.py
Traceback (most recent call last):
File "E:\LinesColor2\main.py", line 22, in <module>
write.writerows(results)
_csv.Error: iterable expected, not int
Process finished with exit code 1
型
1条答案
按热度按时间whlutmcx1#
您应该使用
writerow
方法而不是writerows
,因为您试图在csv文件中一次只写入一行。另外,你正在for循环中创建一个新文件,这非常慢,而不是你想要实现的。
下面是你的代码应该看起来像什么:
字符串