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
# 對于長寬不等的圖片,找到最長的一邊
longest_edge = max(h,w)
# 計(jì)算短邊需要增加多少像素寬度才能與長邊等長(相當(dāng)于padding,長邊的padding為0,短邊才會有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,使圖片長、寬相等
# 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í)候會報(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大小的圖片
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
對python中arange()和linspace()的區(qū)別說明
這篇文章主要介紹了對python中arange()和linspace()的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python爬蟲獲取小區(qū)經(jīng)緯度以及結(jié)構(gòu)化地址
這篇文章主要為大家詳細(xì)介紹了python爬蟲獲取小區(qū)經(jīng)緯度,以及結(jié)構(gòu)化的地址,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
Python實(shí)現(xiàn)檢測文件的MD5值來查找重復(fù)文件案例
這篇文章主要介紹了Python實(shí)現(xiàn)檢測文件的MD5值來查找重復(fù)文件案例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
分析Python字符串拼接+=和join()哪個(gè)速度更快
這篇文章主要分析了Python中字符串拼接+=和join()哪個(gè)速度更快,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
python爬蟲爬取監(jiān)控教務(wù)系統(tǒng)的思路詳解
這篇文章主要介紹了python爬蟲監(jiān)控教務(wù)系統(tǒng),主要實(shí)現(xiàn)思路是對已有的成績進(jìn)行處理,變?yōu)閘ist集合,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-01-01
python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例
這篇文章主要介紹了python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12

