如何使用python opencv删除文件夹中的特定图像
Posted
技术标签:
【中文标题】如何使用python opencv删除文件夹中的特定图像【英文标题】:how to delete specific image in folder using python opencv 【发布时间】:2020-10-17 23:11:15 【问题描述】:我使用python OpenCV从图像中检测和裁剪文本,在这种情况下,有一些没有字母或任何其他符号的图像也被裁剪(空白区域)被添加到我想要的文件夹中删除那些我使用cv2.findNonZeros
删除这些图像的特定图像,但我无法做到这一点,
我想在我的代码中使用 python 删除这个图像,有什么简单的逻辑可以实现这个吗?
【问题讨论】:
您想从您的磁盘中删除个人文件吗?见 os.remove docs.python.org/3/library/os.html#os.remove 【参考方案1】:您的算法应如下所示: 对于文件夹中的每个图像,检查所有像素是否都是白色的(在这里您还可以检查文件是否为图像)。如果所有像素都是白色删除文件。
如何遍历目录:Loop through directory of images and rotate them all x degrees and save to directory
检查图像是否全是白色像素:Check if image is all white pixels with OpenCV
删除文件:https://www.dummies.com/programming/python/how-to-delete-a-file-in-python/
通过此链接,您可以轻松解决您的问题
【讨论】:
我按照你说的尝试并发布答案,如果我实现了,谢谢-@xszym【参考方案2】:因此您需要删除所有单一颜色的图像,即完整的黑色/白色/任何其他颜色。
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)
注意事项:
不要把你的脚本和图片放在同一个文件夹中,因为它会尝试将你的脚本作为图片打开,并抛出错误。
len(clrs) 实际上显示图像中有多少种颜色。如果为 1,则表示图像是一种颜色。
【讨论】:
以上是关于如何使用python opencv删除文件夹中的特定图像的主要内容,如果未能解决你的问题,请参考以下文章
删除图像中的水平线(OpenCV、Python、Matplotlib)
使用 python/opencv/深度学习从图像中删除给定位置的徽标/水印