如何用几行代码读取目录下所有的图片

Posted 叮当物联 - 个人博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用几行代码读取目录下所有的图片相关的知识,希望对你有一定的参考价值。

该程序同时也解决opencv中文路径,图片不能正常读取的问题。

最近写了一个,爬去了较多的妹子资源,但是需要手动的一个一个的去浏览图片,闲太麻烦了,能不能制作一个软件,能直接读取某目录下的所有图片呢?好,说干就干吧。

首先需要引入一些常用的库:

import cv2
import numpy as np
from matplotlib import pyplot as plt
import os
import time

接下来,就是所有的代码量了,直接上干货吧

ph = r"E:\image\小清新"

def list_dir(path):
    for f in os.listdir(path):
        f= path+ r"\\"+f
        if os.path.isfile(f):
            pp = str(f)
            print("file is:"+ str(f))
            if (pp.find("png") != -1) or (pp.find("jpg") != -1):
                #cv2.namedWindow("img",cv2.WINDOW_NORMAL)
                print("will to read file:" + str(f))
                #img = cv2.imread(f)
                img = cv2.imdecode(np.fromfile(f,dtype=np.uint8),-1)   //说明python2的操作在这里不同,需要进行修改
                if img is None:
                    continue
                else:
                    img = cv2.resize(img,(1024,768))
                cv2.imshow("img",img)
                cv2.waitKey(20)
        elif os.path.isdir(f):
            print("find dir:" + str(f))
            list_dir(f)
        else:
            #list_dir(f)
            print("find unknow:" + str(f))
    cv2.destroyAllWindows()
    print("list_dir end")
    
list_dir(ph)
print("all end")

python2和python3需要进行修改的地方:

python3版本
# python3版本
# imread

path_file = "sample"
img = cv2.imdecode(np.fromfile(path_file,dtype=np.uint8),-1)

#imwrite
_path = "sample"
cv2.imencode(.jpg,img)[1].tofile(_path)
python2版本
# python 2版本
import cv2
import sys
reload(sys)
sys.setdefaultencoding(u8)
path_file = u"sample"
img = cv2.imread(path_file.decode(u8).encode(gbk),-1)

好了,大功告成,试试只用几行代码就搞定图片浏览器的快感吧。

好了,如果大家遇到问题,不能运行的话,请加群:98556420,提出疑问吧。

以上是关于如何用几行代码读取目录下所有的图片的主要内容,如果未能解决你的问题,请参考以下文章

如何用几行代码做特征选择

如何用opencv读取avi视频并在界面截图进行人脸检测

python scrapy ,几行代码实现一个搜狗图片下载器

如何用java导入Excel数据到数据库?

如何用C语言查找一个字符串在word中第几页第几行出现?word中是如何确定一个字符在哪一页哪一行的?

如何用matlab将彩色图片变成黑白图片