如何使用 python opencv 删除文件夹中的特定图像

how to delete specific image in folder using python opencv

我使用 python OpenCV 来检测和裁剪图像中的文本,在这种情况下,有一些图像没有字母或任何其他符号也被裁剪(空白区域)被添加到我想删除那些特定图像的文件夹 我用 cv2.findNonZeros 删除了这些图像,但我无法实现,

我想在我的代码中使用 python 删除此图像,是否有任何简单的逻辑可以实现此目的?

您的算法应如下所示: 对于文件夹中的每个图像,检查是否所有像素都是白色的(在这里您还可以检查文件是否为图像)。如果所有像素都是白色删除文件。

  1. 如何遍历目录:

  2. 检查图像是否全是白色像素:

  3. 删除一个文件:https://www.dummies.com/programming/python/how-to-delete-a-file-in-python/

使用此链接可以轻松解决您的问题

因此您需要删除所有单一颜色的图像,即完整Black/White/Any其他颜色。

import Image, os
import os
path = "C:\Users\Ajju\Desktop\test_images"
for filename in os.listdir(path):
    img = Image.open(path + '\' + filename)
    clrs = img.getcolors()
    print filename, len(clrs)
    if len(clrs) == 1:
        os.remove(path + '\' + filename)

备注:

  1. 不要将您的脚本与图像放在同一文件夹中,因为它会尝试将您的脚本作为图像打开,并引发错误。

  2. len(clrs) 实际上显示图像中存在多少种颜色。如果为 1,则表示图像是一种颜色。