【问题标题】:convert image into pixel dataframe into csv file using python使用python将图像转换为像素数据帧到csv文件
【发布时间】:2019-02-11 22:32:58
【问题描述】:

我有图片文件夹("C:\Users\Admin\Downloads\mypicture") 这里的例子 82

我想把它转换成这样的像素数据帧

  pixel1 pixel. pixel158 pixel159 pixel160 pixel161 pixel162 pixel163 pixel164 pixel165 pixel166 pixel167 pixel168 pixel169 pixel170 pixel171 pixel172
1      0      …        0      191      250      253       93        0        0        0        0        0        0        0        0        0        0
2      0      …       32        0        0        0        0        0        0        0        0        0        0        0        0        0        0
  pixel173 pixel174 pixel175 pixel176
1        0        0        0        0
2        0        0       16      179

每个图像都表示为一行。每个图像的灰度都在 [0, 255] 范围内。 我这样做了

img = mpimg.imread("C:\Users\Admin\Downloads\mypicture")
img = np.ravel(img) 
df = pd.DataFrame([img])

但我得到了这个错误

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

如何在 csv 文件中获取所需的数据框?

【问题讨论】:

  • 请包含完整的回溯,以便我们查看是哪一行产生了错误。

标签: python


【解决方案1】:

您可以使用PIL 库将图像转换为像素数据帧,方法是从这样的图像中获取像素列表

from PIL import Image
im = Image.open('image.png')

pixels = list(im.getdata())

这将返回具有(r,g,b) 值的像素列表,因此如果您只想获取每个像素的灰度,只需在每个值的第二个元素中迭代该列表,如下所示

result = []
counter = 0
for pixel in pixels:
    counter += 1
    result.append(['pixel'+ str(counter), pixel[1]])
return (result)

输出:

['pixel1', 72], ['pixel2', 50], ['pixel3', 0], ['pixel4', 11], ['pixel5', 30], ['pixel6', 42], ['pixel7', 107], ['pixel8', 123], ['pixel9', 124], ['pixel10', 130]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-08-10
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
相关资源
最近更新 更多