Python/OpenCVで2つの画像を連結する
Python/OpenCVで画像同士を連結する方法です。
横方向、縦方向の連結の他に、間にブランク(空白)を噛まして連結する方法についても紹介します。
[ad#top-1]
横方向に連結する
下図のように横に画像を連結する方法です。
ソースコードは以下の通り。hconcat で横連結させています。
import cv2
#2つの画像を読み込む
img01 = cv2.imread('img01.png')
img02 = cv2.imread('img02.png')
#2つの画像を横方向に連結
img = cv2.hconcat([img01, img02])
#別名で保存
cv2.imwrite('img_join.png',img)
縦方向に連結する
縦方向に連結する下図のように縦に画像を連結する方法です。
ソースコードは以下の通り。vconcat で縦連結させています。
import cv2
#2つの画像を読み込む
img01 = cv2.imread('img01.png')
img02 = cv2.imread('img02.png')
#2つの画像を横方向に連結
img = cv2.vconcat([img01, img02])
#別名で保存
cv2.imwrite('img_join.png',img)
間にブランク(空白)を噛まして連結する
間に空白を入れる場合の方法です。
これはまずブランクの画像をnumpyで作成します。その後、画像⇔ブランク⇔画像の順に連結していきます。
import cv2
import numpy as np
#2つの画像を読み込む
img01 = cv2.imread('img01.png')
img02 = cv2.imread('img02.png')
#同じ高さのブランク画像を生成
height = img01.shape[0]
blank = np.zeros((height, 40, 3), np.uint8)
#0配列は黒なので全要素を255にする
blank += 255
#まずは1つめの画像とブランクを連結
img01a = cv2.hconcat([img01, blank])
#続いて2つめの画像を連結
img = cv2.hconcat([img01a, img02])
#別名で保存
cv2.imwrite('img_join.png',img)
[ad#ad-1]
スポンサーリンク


