使用python+opencv對(duì)文件夾的圖片進(jìn)行縮放resize

resize函數(shù)在opencv中用的可謂是最多的之一,縮放單張圖片可用下述寫法:

import cv2
img1 = cv2.imread("left.png", 1)  # 參數(shù)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)  # 保存新圖像

但是對(duì)一個(gè)文件夾下有多張圖片該怎么辦呢,總不能一張一張地修改名字寫吧,如下圖:


image.png

很簡(jiǎn)單,利用for循環(huán)即可實(shí)現(xiàn),見下:

import cv2
for i in range(1,24):
    qianzhui1 = './left/left_'
    path1 = qianzhui1 + str(i)+'.png'
    img1 = cv2.imread(path1, 1)  # 參數(shù)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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容