天天看點

python圖像拼接_python實作圖像拼接功能

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

所有檔案夾:

python圖像拼接_python實作圖像拼接功能

檔案夾下的所有原圖:

python圖像拼接_python實作圖像拼接功能

檔案夾下的所有的分割圖檔:

python圖像拼接_python實作圖像拼接功能

代碼如下:

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)

單獨圖檔的拼接效果:

python圖像拼接_python實作圖像拼接功能

新檔案夾new下圖檔的效果:

python圖像拼接_python實作圖像拼接功能

本文已被收錄到專題《python圖檔處理操作》,歡迎大家點選學習更多精彩内容。

以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援腳本之家。