如何使用Python 3模組Pillow合併相同大小的影像?
Pillow 或 PIL 是一個強大的 Python 庫,用於處理和操作影像。影像處理中最常見的任務之一是將多張影像合併為單張影像。它提供了一系列用於載入、操作和儲存各種格式影像的功能。Pillow 的主要功能之一是支援影像合併。它支援各種影像,包括“jpeg”、“png”、“bmp”、“gif”、“ppm”、“tiff”。使用此模組,我們幾乎可以對數字影像做任何事情,例如基本的影像處理功能、點運算、使用內建卷積核過濾影像以及顏色空間轉換。
在本文中,我們將學習如何在 Python 3 中使用 Pillow 模組合併相同大小的影像。
但在開始之前,讓我們首先了解什麼是影像合併以及為什麼它很重要。影像合併是將兩張或更多影像組合成單張影像的過程。它通常用於建立全景圖、將多張影像合成到單個幀中或混合影像以建立新影像的應用程式。需要注意的是,為了合併影像,它們需要具有相同的大小。
使用 Pillow 合併相同大小影像的步驟
以下是使用 Python3 中的 Pillow 合併相同大小影像的步驟:
步驟 1:匯入所需的模組
首先,我們需要匯入所需的模組。在本例中,我們需要從 Pillow 庫匯入 Image 模組。
from PIL import Image
步驟 2:開啟影像
接下來,我們需要開啟要合併的影像。我們可以使用 Image.open() 方法來實現。此方法返回一個 Image 物件,我們可以用它來操作影像。
myimage1= Image.open('image1.jpg')
myimage1= Image.open('image2.jpg')
步驟 3:檢查影像的大小
在合併影像之前,我們需要確保影像具有相同的大小。我們可以使用 size 屬性檢查影像的大小。
if myimage1.size == myimage2.size:
# continue with merging
else:
print('The images must have the same size to merge them using Pillow!')
步驟 4:建立新影像
我們需要建立一個新影像來儲存合併後的影像。我們可以使用 Image.new() 方法來實現。此方法將新影像的模式和大小作為引數。
mymerged_image= Image.new('RGB', myimage1.size)
步驟 5:合併影像
最後,我們可以使用 Image.paste() 方法將一張影像貼上到另一張影像上,從而合併影像。我們需要指定要貼上影像的座標。
mymerged_image.paste(myimage1, (0, 0)) mymerged_image.paste(myimage2, (myimage1.size[0], 0))
步驟 6:儲存合併後的影像
我們可以使用 Image.save() 方法儲存合併後的影像。
mymerged_image.save(mymerged_image.jpg')
現在,您必須很好地理解如何使用 python3 模組 pillow 合併相同大小的影像。讓我們看看使用不同方法的一些詳細示例。
示例 1:水平合併影像
在下面,我們將水平合併兩張影像。第一張影像將在左側,第二張影像將在右側。
我們建立一個新的合併影像,其寬度等於其中一張輸入影像的寬度,高度等於兩張輸入影像高度的總和。在這裡,我們使用 Image.open() 方法讀取兩張輸入影像 myimage1 和 myimage2。
接下來,我們檢查兩張影像的大小是否相同。如果相同,我們使用 Image.new() 方法建立一個新影像。Image.new() 方法接受兩個引數:新影像的模式(在本例中為“RGB”)和新影像的大小(在本例中,新影像的寬度是兩張輸入影像寬度的總和,新影像的高度是其中一張輸入影像的高度)。
建立新影像後,我們使用 paste() 方法水平合併兩張輸入影像。paste() 方法接受兩個引數:要貼上的影像和貼上的位置。在本例中,我們將 image1 貼上在新影像的左上角 ((0, 0)),並將 myimage2 貼上在新影像的右上角 ((myimage1.size[0], 0))。最後,我們儲存了合併後的影像。
#import the PIL
from PIL import Image
# Open the images
myimage1 = Image.open('myimageone.jpg')
myimage2 = Image.open('myimagetwo.jpg')
# Checking the sizes of the images
if myimage1.size == myimage2.size:
# Creatin a new image
mymerged_image = Image.new('RGB', (myimage1.size[0], myimage1.size[1] + myimage1.size[1]))
# Merging the images horizontally
mymerged_image.paste(myimage1, (0, 0))
mymerged_image.paste(myimage2, (myimage1.size[0], 0))
# Saving the merged image
mymerged_image.save('mymerged_image_horizontal.jpg')
else:
print('The images must have the same size to merge them using Pillow')
輸出
輸入影像


輸出影像

示例 2:垂直合併影像
在下面的示例中,我們將垂直合併兩張影像。第一張影像將在頂部,第二張影像將在底部。
我們建立一個新影像,其寬度等於兩張輸入影像寬度的總和,高度等於其中一張輸入影像的高度。現在,使用 PIL 模組,我們將第一張影像貼上在新影像的左上角,並將第二張影像貼上在新影像的右上角。最後,我們儲存了合併後的影像。
#import the PIL
from PIL import Image
# Open the images
myimage1 = Image.open('myimageone.jpg')
myimage2 = Image.open('myimagetwo.jpg')
# Checking the sizes of the images
if myimage1.size == myimage2.size:
# Creatin a new image
mymerged_image = Image.new('RGB', (myimage1.size[0], myimage1.size[1] + myimage1.size[1]))
# Merging the images vertically
mymerged_image.paste(myimage1, (0, 0))
mymerged_image.paste(myimage2, (0, myimage1.size[1]))
# Saving the merged image
mymerged_image.save('mymerged_image_vertical.jpg')
else:
print('The images must have the same size to merge them using Pillow')
輸出
輸入影像


輸出影像

結論
在 Python 中,合併相同大小的影像是影像處理中的一項常見任務。在本文中,我們學習瞭如何使用 Python 3 模組 pillow 合併兩張相同大小的影像。我們看到了使用 Python 中的 Pillow 合併影像的完整步驟,以及水平和垂直合併影像的兩個完整示例。透過遵循這些步驟,您可以輕鬆地使用 Pillow 合併相同大小的影像。
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP