使用Python读取文件夹中的图片


  一个文件夹中含有大量的图片文件,jpg格式和png格式的。需要从中选出一些比较适合电脑分辨率的,也就是宽度大于高度的。考虑到Python的库比较多,功能比较强大,觉得使用Python进行编程实现。

Python创建新的文件夹

  这一步在后面的程序中并没有用到,但我还是在程序上实现了一下。采用的函数为mkdir()。代码块如下:

import os
def make_file(my_file_name):
	is_exists = os.path.exists(my_file_name)
	if not if_exists:
		os.mkdir(my_file_name)
	return my_file_name

上述代码通过判断该文件是否存在,然后再新建文件夹。建议使用绝对路径。

Python读取文件夹中的图片内容以及存取

  代码块如下:

import os
import cv2
def read_picture(old_picture_file_name, new_picture_file_name):
    i = 0 #用来计算该文件夹中的图片数
    for pic_name in os.listdir(old_picture_file_name):
        img = cv2.imread(old_picture_file_name + "/" +pic_name, cv2.IMREAD_UNCHANGED)
        pic_height, pic_width, channel = img.shape
        if pic_width >= pic_height:
            cv2.imwrite(new_picture_file_name + "/" + str(i) + ".png", img)
        i = i + 1
    return i

读取图片需要导入的模块是cv2,是计算机视觉领域常用的一个库,安装该库的方法是直接

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/
  • os.listdir()函数返回该文件夹中图片的文件名,是一个字符串列表,然后pic_name依次遍历该列表中的值。
  • cv2.imread()函数两个参数分别是文件名和读取方式,读取方式为IMREAD_UNCHANGED表示读取后不改变图片,比如彩色图片读取后存取的还是彩色图片。
  • img.shape返回该图片的高度,宽度以及信道
  • cv2.imwrite()函数两个参数分别是存取的图片的路径加上文件名,需要存取的图片。
    注:在上面cv2.imwrite函数中,建议将.png改为.jpg,使用.png格式存取时要求较高,会出现警告,但不影响程序运行。
  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值