1. 程式人生 > 程式設計 >python實現影象拼接功能

python實現影象拼接功能

利用Python將Market1501的分割圖片和原圖兩張圖片進行拼接成一左一右一張圖片,並將圖片的畫素值調整成256*128.
所有資料夾:

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,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實現影象拼接功能

新資料夾new下圖片的效果:

python實現影象拼接功能

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