尝试打印图像计数

Posted

技术标签:

【中文标题】尝试打印图像计数【英文标题】:Trying to print image count 【发布时间】:2021-03-12 12:17:37 【问题描述】:

我是 Python 新手,我正在尝试为一个项目启动 CNN。我安装了 gdrive 并尝试从 gdrive 目录下载图像。之后,我试图计算该目录中的图像。这是我的代码:

import pathlib
dataset_dir = "content/drive/My Drive/Species_Samples"
data_dir = tf.keras.utils.get_file('Species_Samples', origin=dataset_dir, untar=True)
data_dir = pathlib.Path(data_dir)

image_count = len(list(data_dir('*/*.png')))
print(image_count)

但是,我收到以下错误。

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-78-e5d9409807d9> in <module>()
----> 1 image_count = len(list(data_dir('*/*.png')))
      2 print(image_count)

TypeError: 'PosixPath' object is not callable

你能帮忙吗?

经过建议,我的代码如下所示:

import pathlib
data_dir = pathlib.Path("content/drive/My Drive/Species_Samples/")
count = len(list(data_dir.rglob("*.png")))
print(count)

【问题讨论】:

【参考方案1】:

您正在尝试使用 pathlib 具有的一种 glob 方法来 glob 文件:

import pathlib

data_dir = pathlib.Path("/path/to/dir/")

count = len(list(data_dir.rglob("*.png")))

在这种情况下,.rglob 是一个递归 glob。

【讨论】:

感谢您的建议。我很感激。但是,它仍然打印计数为 0。它看到主目录的内容和目录中的文件夹内容(PNG 文件),但仍然打印计数为 0。您知道可能是什么问题吗? 您确定目录中有.png文件吗? rglob方法中的文本区分大小写,所以*.png*.PNG 看起来我在 data_dir = pathlib.Path("content/drive/My Drive/Species_Samples/") 中的内容之前错过了斜线。代码现在很重要。谢谢您的帮助。我很感激。

以上是关于尝试打印图像计数的主要内容,如果未能解决你的问题,请参考以下文章

使用 goroutine 时在 golang 中打印一个准确的计数器

将数据帧转换为 numpy 数组会导致所有数字以科学计数法打印 [关闭]

Laravel 计数车辆 W/O 图像

字符串重复计数

元器件图像识别计数

在 python 中使用图像处理计数粒子