使用python+opencv对文件夹的图片进行缩放resize

resize函数在opencv中用的可谓是最多的之一,缩放单张图片可用下述写法:

import cv2
img1 = cv2.imread("left.png", 1)  # 参数1表示以彩色图像读取
img2 = cv2.imread("right.png", 1)  
x, y = img1.shape[0:2]   # 获取图像的宽和高
img_test1 = cv2.resize(img1, (int(y / 4), int(x / 4)))  # 注意x,y的顺序不要写满
cv2.imwrite('l.png', img_test1)
img_test2 = cv2.resize(img2, (int(y / 4), int(x / 4)))  # 将图像缩小4*4倍
cv2.imwrite('r.png', img_test2)  # 保存新图像

但是对一个文件夹下有多张图片该怎么办呢,总不能一张一张地修改名字写吧,如下图:


image.png

很简单,利用for循环即可实现,见下:

import cv2
for i in range(1,24):
    qianzhui1 = './left/left_'
    path1 = qianzhui1 + str(i)+'.png'
    img1 = cv2.imread(path1, 1)  # 参数1表示以彩色图像读取
    qianzhui2 = './right/right_'
    path2 = qianzhui2 + str(i)+'.png'
    img2 = cv2.imread(path2, 1)

    if img1 is None:    # 检查路径是否正确
        print(path1 +' is not exist!')
    if img2 is None:
        print(path2 +' is not exist!')

    x, y = img1.shape[0:2]  # 获取图像的宽和高
    result1 = './l/00000'+ str(i-1)+'_10.png'
    img_test1 = cv2.resize(img1, (int(y / 4), int(x / 4)))  # 注意x,y的顺序不要写满
    cv2.imwrite(result1, img_test1)
    result2 = './r/00000' + str(i - 1) + '_10.png'
    img_test2 = cv2.resize(img2, (int(y / 4), int(x / 4)))  # 将图像缩小4*4倍
    cv2.imwrite(result2, img_test2)  # 保存新图像
print("Finished! No wrong.")

最终可以看出在该路径下存放了缩放后的图片,见下图:


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容