Python OpenCV 複数の画像を並べて1枚に表示する方法

OpenCVを用いての画像結合です。複数の画像を並べて1枚に表示しようと思います。

まずは出力から。

出力


4枚の写真を一枚の画像にしてみました。

これでコラージュ画像を作成できますね。座標指定により写真の間に空白を設けることもできます。

プログラム

#ライブラリのインポート
import cv2
import numpy as np

#単色画像を作成 高さ、幅、チャンネル
img_blank = np.zeros((684, 1024, 3))

#画像読み込み
img1 = cv2.imread("photo1.jpg")
img2 = cv2.imread("photo2.jpg")
img3 = cv2.imread("photo3.jpg")
img4 = cv2.imread("photo4.jpg")

#画像の高さと幅を取得
height, width = img1.shape[:2]

#貼り付け箇所を指定[Y上:Y下, X左:X右]
img_blank[0:height, 0:width] = img1
img_blank[0:height, 512:width+512] = img2
img_blank[342:height+342, 0:width] = img3
img_blank[342:height+342, 512:width+512] = img4

#ファイル書き出し  
cv2.imwrite("photos.jpg", img_blank)

コメント

処理の流れはとても単純です。

単色の画像を作り、そこに読み込んだ画像を貼り付けているだけです。

読み込む画像のサイズがそれぞれ異なっていたり、リサイズが必要になる場合はその処理を追加する必要があります。

タイトルとURLをコピーしました