
まくまく
画像処理ライブラリ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)
コメント
処理の流れはとても単純です。
単色の画像を作り、そこに読み込んだ画像を貼り付けているだけです。
読み込む画像のサイズがそれぞれ異なっていたり、リサイズが必要になる場合はその処理を追加する必要があります。
Python OpenCVを用いた画像処理についてはこちらの記事でまとめています。>>>Python OpenCV 使い方まとめ