python opencv 批量改變圖片的尺寸大小的方法
我目標文件夾下有一大批圖片,我要把它轉(zhuǎn)變?yōu)橹付ǔ叽绱笮〉膱D片,用pthon和opencv實現(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)
# 計算短邊需要增加多少像素寬度才能與長邊等長(相當于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分別是各個邊界的寬度,cv2.BORDER_CONSTANT是一種border type,表示用相同的顏色填充
constant = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_CONSTANT, value = BLACK)
# 調(diào)整圖像大小并返回圖像,目的是減少計算量和內(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) # 注意這里圖片名一定要加上擴展名,否則后面imwrite的時候會報錯
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中常用的數(shù)據(jù)結(jié)構(gòu)與算法優(yōu)化技巧指南
Python是一種強大而靈活的編程語言,它提供了豐富的數(shù)據(jù)結(jié)構(gòu)和算法庫,但是在處理大規(guī)模數(shù)據(jù)或者需要高效運行的情況下,需要考慮一些優(yōu)化技巧,本文將介紹一些Python中常用的數(shù)據(jù)結(jié)構(gòu)與算法優(yōu)化技巧,需要的朋友可以參考下2024-05-05
在Python中封裝GObject模塊進行圖形化程序編程的教程
這篇文章主要介紹了在Python中封裝GObject模塊進行圖形化程序編程的教程,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04
Python實現(xiàn)批量將word轉(zhuǎn)html并將html內(nèi)容發(fā)布至網(wǎng)站的方法
這篇文章主要介紹了Python實現(xiàn)批量將word轉(zhuǎn)html并將html內(nèi)容發(fā)布至網(wǎng)站的方法,涉及Python調(diào)用第三方接口進行文件轉(zhuǎn)換及操作數(shù)據(jù)庫等相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
tensorboard 可視化之localhost:6006不顯示的解決方案
這篇文章主要介紹了tensorboard 可視化之localhost:6006不顯示的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05
Python獲取江蘇疫情實時數(shù)據(jù)及爬蟲分析
為了關(guān)注疫情狀況,今天我們用python來爬一爬疫情的實時數(shù)據(jù),本文通過實例圖文相結(jié)合給大家介紹的非常詳細,需要的朋友參考下吧2021-08-08

