python 代碼怎么實作讀取檔案夾中的圖片,并按照順序,每2張圖片橫向拼接在一起?

比如檔案夾圖片是這樣,每個圖片大小都是,寬2048,高1024,怎么實作按順序將每兩個圖片橫拼接?求指導
uj5u.com熱心網友回復:
參考這個帖子。 原貼是全部拼接, 改成兩兩拼接即可。https://blog.csdn.net/ahaotata/article/details/84027000
uj5u.com熱心網友回復:
謝謝您,我改了路徑,圖片大小,張數,可是運行有錯誤,我不會改,請問需要怎么改呢?
uj5u.com熱心網友回復:
把Windows目錄名改改, 不要有空格試試。 或者把空格換成下劃線。uj5u.com熱心網友回復:
謝謝您,我改了路徑和圖片大小和張數,可是運行了有錯誤,我不會改,錯誤是:OSE rror: [WinError 123]檔案名、目錄名或卷標語法不正確。:’G:\\data \two image \\
我代碼中的地址是:G:\data\two image\\
請問這里需要怎么改呢?
uj5u.com熱心網友回復:
這樣試試你新建2個目錄
g:\data\test1
g:\data\test2
把 圖片拷貝到 g:\data\test1
代碼目錄改一下。
IMAGES_PATH = 'g:\\data\\test1\\' # 圖片集地址
IMAGE_SAVE_PATH = 'g:\\data\\test1\\final.jpg' # 圖片轉換后的地址
uj5u.com熱心網友回復:
IMAGE_SAVE_PATH = 'g:\\data\\test2\\final.jpg' # 圖片轉換后的地址uj5u.com熱心網友回復:
先驗證是否成功, 再改回你的目標路徑uj5u.com熱心網友回復:
好的好的,我試試,謝謝您uj5u.com熱心網友回復:
會不會是,原程式中影像大小寬高都是256,我的圖片大小寬是2048,高是1024,這里不一樣啊?uj5u.com熱心網友回復:
import PIL.Image as Image #pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow
import os
IMAGES_PATH = 'E:\\下載\\idm\\img\\' # 圖片集地址
IMAGES_FORMAT = ['.jpg', '.JPG'] # 圖片格式
IMAGE_SIZE = 256 # 每張小圖片的大小
IMAGE_ROW = 4 # 圖片間隔,也就是合并成一張圖后,一共有幾行
IMAGE_COLUMN = 4 # 圖片間隔,也就是合并成一張圖后,一共有幾列
IMAGE_SAVE_PATH = 'E:\\下載\\idm\\img\\final' # 圖片轉換后的地址
start=1
# 獲取圖片集地址下的所有圖片名稱
image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if
os.path.splitext(name)[1] == item]
print(image_names)
# 簡單的對于引數的設定和實際圖片集的大小進行數量判斷
#if len(image_names) != IMAGE_ROW * IMAGE_COLUMN:
# raise ValueError("合成圖片的引數和要求的數量不能匹配!")
# 定義影像拼接函式
def image_compose(start):
while int(start)*IMAGE_COLUMN*IMAGE_ROW<=len(image_names):
to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE)) #創建一個新圖
# 回圈遍歷,把每張圖片按順序粘貼到對應位置上
for y in range(1, IMAGE_ROW + 1):
for x in range(1, IMAGE_COLUMN + 1):
try:
from_image = Image.open(IMAGES_PATH + image_names[(start-1)*IMAGE_COLUMN*IMAGE_ROW+IMAGE_COLUMN * (y - 1) + x - 1]).resize((IMAGE_SIZE, IMAGE_SIZE),Image.ANTIALIAS)
to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE))
except Exception as e:
pass
raise e
to_image.save(IMAGE_SAVE_PATH+str(start)+'.jpg')
start+=1
return # 保存新圖
image_compose(start) #呼叫函式
uj5u.com熱心網友回復:
import PIL.Image as Image #pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow
import os
IMAGES_PATH = 'E:\\下載\\idm\\img\\' # 圖片集地址
IMAGES_FORMAT = ['.jpg', '.JPG'] # 圖片格式
IMAGE_VSIZE = 118 # 每張小圖片的大小
IMAGE_HSIZE = 256 # 每張小圖片的大小
IMAGE_ROW = 4 # 圖片間隔,也就是合并成一張圖后,一共有幾行
IMAGE_COLUMN = 4 # 圖片間隔,也就是合并成一張圖后,一共有幾列
IMAGE_SAVE_PATH = 'E:\\下載\\idm\\img\\final' # 圖片轉換后的地址
start=1
# 獲取圖片集地址下的所有圖片名稱
image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if
os.path.splitext(name)[1] == item]
print(image_names)
# 簡單的對于引數的設定和實際圖片集的大小進行數量判斷
#if len(image_names) != IMAGE_ROW * IMAGE_COLUMN:
# raise ValueError("合成圖片的引數和要求的數量不能匹配!")
# 定義影像拼接函式
def image_compose(start):
while int(start)*IMAGE_COLUMN*IMAGE_ROW<=len(image_names):
to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_HSIZE, IMAGE_ROW * IMAGE_VSIZE)) #創建一個新圖
# 回圈遍歷,把每張圖片按順序粘貼到對應位置上
for y in range(1, IMAGE_ROW + 1):
for x in range(1, IMAGE_COLUMN + 1):
try:
from_image = Image.open(IMAGES_PATH + image_names[(start-1)*IMAGE_COLUMN*IMAGE_ROW+IMAGE_COLUMN * (y - 1) + x - 1]).resize((IMAGE_HSIZE, IMAGE_VSIZE),Image.ANTIALIAS)
to_image.paste(from_image, ((x - 1) * IMAGE_HSIZE, (y - 1) * IMAGE_VSIZE))
except Exception as e:
pass
raise e
to_image.save(IMAGE_SAVE_PATH+str(start)+'.jpg')
start+=1
return # 保存新圖
image_compose(start) #呼叫函式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/76655.html
上一篇:python安裝pymssql
下一篇:求教學(???-)_
