文档章节

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

xiaodingding
 xiaodingding
发布于 2017/07/04 23:29
字数 410
阅读 14
收藏 0

该程序同时也解决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,提出疑问吧。

© 著作权归作者所有

xiaodingding
粉丝 0
博文 5
码字总数 9807
作品 1
昆明
高级程序员
私信 提问
Kotlin入门(27)文件读写操作

Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通过输入输出流中转,致使文件读写操作颇为繁琐。因此,开发者通常得自己重新封装一个文件存取的工具类,以便...

aqi00
2018/10/21
0
0
远程读取linux服务器文件内容

请大神们指教两个问题: Q1:使用scpClient读取远程服务器的指定文件,在使用如下代码的情况下,能否实现将文件内容转为行读取,或者行处理?如果如下代码不行,那么可以用什么方法/类?文件...

WilliamKZhy
2018/04/17
1K
1
UEditor之基于Java图片上传前后端源码研究

那么开始吧! 这是我的项目目录 1.从访问路径http://localhost:8081/Test/_examples/simpleDemo.html,我们主要是要看看,富文本框被加载出来之前,会调用哪些代码, 不卖关子,很明显,会调用...

yunlielai
2017/04/26
0
0
UIWebView加载本地HTML文件

一.准备HTML文件及其资源文件 使用UIWebView加载本地的HTML文件 index.html,在index.html中引用了本地的图片、CSS文件、JS文件以及外部的图片。 index.html内容如下 <html> <img src="Smile...

xrk
2014/02/11
139
0
【教程】使用PAI深度学习tensorflow读取OSS教程

在PAI上, 使用TensorFlow读取OSS文件 作者: 万千钧 转载需注明出处 本文适合有一定TensorFlow基础, 且准备使用PAI的同学阅读 目录 1. 如何PAI上读取数据 2. 如何减少读取的费用开支 3. 使用O...

傲海
2017/08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
今天
10
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
23
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
9
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部