【问题标题】:Why more CSV values than the dimension of image?为什么 CSV 值比图像的尺寸多?
【发布时间】:2018-10-19 17:25:30
【问题描述】:

我正在数据集中创建一个csv 图像文件。每张图片的尺寸为 40*40 像素,全部为.jpg 格式。 Python脚本如下:

for file in os.listdir("E:/ML project/10"):
    print(file)
    img_file = Image.open("E:/ML project/wiki/10/"+file)
    value = np.asarray(img_file, dtype='float32')
    value = value.flatten()
    value=value/255
    writer.writerow(value)

很少有图像的 csv 值超过 1600 个。

与这些类似的图像有 1600 个值。这些是由 python 脚本裁剪的。

与其相似的图像有超过 1600 个值。是强行压缩成40*40的原因吗?

我该如何解决?

【问题讨论】:

  • print() 也会打印尺寸。所有尺寸都是 40x40 吗?
  • 是的,已经检查过了。使用第三方软件将其大小调整为 40*40 时,那些具有异常值的纵横比不是 1:1。
  • 好的,我明白了。这是由于图像不是完全灰度的。感谢4800 参考。

标签: python csv image-processing export-to-csv pixel


【解决方案1】:

您的第二个示例图像实际上是 RGB 图像,因此具有 3 * 40 * 40 值。

解决此问题的一种方法是使用Image.convert() 将其转换为灰度。实际上,您可以对所有非灰度图像执行相同操作:

if img_file.mode != 'L':
    img_file = img_file.convert('L')

(顺便说一句,我会将变量名从 img_file 更改为 img 或类似的名称)

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 2011-08-29
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    相关资源
    最近更新 更多