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