利用Python将Market1501的分割圖檔和原圖兩張圖檔進行拼接成一左一右一張圖檔,并将圖檔的像素值調整成256*128.
所有檔案夾:

檔案夾下的所有原圖:
檔案夾下的所有的分割圖檔:
代碼如下:
import PIL.Image as Image
import os
IMAGES_PATH = 'E:/gyx/Learning/Practice/4/data/market1501_seg_1/test/ori_img/' # 原圖檔集位址
IMAGES_PATH_1 = 'E:/gyx/Learning/Practice/4/data/market1501_seg_1/test/seg_img/' #分割圖檔集位址
IMAGE_SAVE_PATH = 'E:/gyx/Learning/Practice/4/data/market1501_seg_1/test/new/' #儲存新圖檔位址
IMAGES_FORMAT = ['.jpg', '.JPG'] # 圖檔格式
list_n = []
w = 256 # 每張小圖檔的大小
h = 128
# 擷取圖檔集位址下的所有圖檔名稱
image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if
os.path.splitext(name)[1] == item]
image_names_1 = [name for name in os.listdir(IMAGES_PATH_1) for item in IMAGES_FORMAT if
os.path.splitext(name)[1] == item]
# 定義圖像拼接函數
def image_compose(imag,imag_1):
src = os.path.join(os.path.abspath(IMAGE_SAVE_PATH), img)
to_image = Image.new('RGB', (2 * h, 1 * w)) # 建立一個新圖
# 把兩張圖檔按順序粘貼到對應位置上
rom_image = Image.open(IMAGES_PATH + imag).resize((h,w), Image.ANTIALIAS)
rom_image_1 = Image.open(IMAGES_PATH_1 + imag_1).resize((h, w), Image.ANTIALIAS)
to_image.paste(rom_image,(0,0))
to_image.paste(rom_image_1,(h,0))
to_image.save(src) # 儲存新圖,還是原來的名稱
#檔案名相同就調用拼接函數
for img in image_names:
for img_1 in image_names_1:
if img == img_1:
image_compose(img,img_1)
單獨圖檔的拼接效果:
新檔案夾new下圖檔的效果:
本文已被收錄到專題《python圖檔處理操作》,歡迎大家點選學習更多精彩内容。
以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援腳本之家。