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]
スポンサーリンク