python opencv 批量改變圖片的尺寸大小的方法
我目標(biāo)文件夾下有一大批圖片,我要把它轉(zhuǎn)變?yōu)橹付ǔ叽绱笮〉膱D片,用pthon和opencv實(shí)現(xiàn)的。
以上為原圖片。
import cv2 import os # 按指定圖像大小調(diào)整尺寸 def resize_image(image, height = 640, width = 480): top, bottom, left, right = (0,0,0,0) # 獲取圖片尺寸 h, w, _ = image.shape # 對(duì)于長(zhǎng)寬不等的圖片,找到最長(zhǎng)的一邊 longest_edge = max(h,w) # 計(jì)算短邊需要增加多少像素寬度才能與長(zhǎng)邊等長(zhǎng)(相當(dāng)于padding,長(zhǎng)邊的padding為0,短邊才會(huì)有padding) if h < longest_edge: dh = longest_edge - h top = dh // 2 bottom = dh - top elif w < longest_edge: dw = longest_edge - w left = dw // 2 right = dw - left else: pass # pass是空語句,是為了保持程序結(jié)構(gòu)的完整性。pass不做任何事情,一般用做占位語句。 # RGB顏色 BLACK = [0,0,0] # 給圖片增加padding,使圖片長(zhǎng)、寬相等 # top, bottom, left, right分別是各個(gè)邊界的寬度,cv2.BORDER_CONSTANT是一種border type,表示用相同的顏色填充 constant = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_CONSTANT, value = BLACK) # 調(diào)整圖像大小并返回圖像,目的是減少計(jì)算量和內(nèi)存占用,提升訓(xùn)練速度 return cv2.resize(constant, (height, width)) def read__image(path_name): num = 0 for dir_image in os.listdir(path_name): # os.listdir() 方法用于返回指定的文件夾包含的文件或文件夾的名字的列表 full_path = os.path.abspath(os.path.join(path_name,dir_image)) if os.path.isdir(full_path): #如果是文件夾,繼續(xù)遞歸調(diào)用 read_training_data(full_path) else: #如果是文件了 if dir_image.endswith('.JPG'): image = cv2.imread(full_path) image = resize_image(image) #將尺寸調(diào)整好的圖片保存起來 image_name = '%s%d.jpg' % ('resize_image',num) # 注意這里圖片名一定要加上擴(kuò)展名,否則后面imwrite的時(shí)候會(huì)報(bào)錯(cuò) cv2.imwrite(image_name, image) num = num + 1 if __name__=='__main__': read__image('C:/Users/baideguo/dataset/JPEGImages/')
我把原圖片大小為3024 x 4032轉(zhuǎn)變?yōu)榱?40*480大小的圖片
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中常用的數(shù)據(jù)結(jié)構(gòu)與算法優(yōu)化技巧指南
Python是一種強(qiáng)大而靈活的編程語言,它提供了豐富的數(shù)據(jù)結(jié)構(gòu)和算法庫,但是在處理大規(guī)模數(shù)據(jù)或者需要高效運(yùn)行的情況下,需要考慮一些優(yōu)化技巧,本文將介紹一些Python中常用的數(shù)據(jù)結(jié)構(gòu)與算法優(yōu)化技巧,需要的朋友可以參考下2024-05-05在Python中封裝GObject模塊進(jìn)行圖形化程序編程的教程
這篇文章主要介紹了在Python中封裝GObject模塊進(jìn)行圖形化程序編程的教程,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04Python實(shí)現(xiàn)批量將word轉(zhuǎn)html并將html內(nèi)容發(fā)布至網(wǎng)站的方法
這篇文章主要介紹了Python實(shí)現(xiàn)批量將word轉(zhuǎn)html并將html內(nèi)容發(fā)布至網(wǎng)站的方法,涉及Python調(diào)用第三方接口進(jìn)行文件轉(zhuǎn)換及操作數(shù)據(jù)庫等相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07tensorboard 可視化之localhost:6006不顯示的解決方案
這篇文章主要介紹了tensorboard 可視化之localhost:6006不顯示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python獲取江蘇疫情實(shí)時(shí)數(shù)據(jù)及爬蟲分析
為了關(guān)注疫情狀況,今天我們用python來爬一爬疫情的實(shí)時(shí)數(shù)據(jù),本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08