非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

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]

スポンサーリンク

 - Python