見出し画像

Pythonで画像をくっつける

こんばんは、アリカです。

本日はPythonを使って画像の結合を行っていきたいと思います。

今時、画像を結合するアプリなんて沢山あると思いますが、コードを組んでおけば意外と便利かもしれないと思いやってみることにしました。

タイトル画像にあるA,B,C,Dの画像を連結してみたいと思います。


yolov8という最新の物体検出アルゴリズムを使ってリアルタイムの物体検知を行っています。
画像処理に興味がある方は是非こちらの動画も是非ご確認ください!

テキストVer


本題

画像編集に使うopencvをインポートします。

import cv2

※注意

opencvはpipでインストールする必要がありますが、

pip install opencv-python


pipのバージョンが低いとインストールができないのでアップグレードする必要があります。

pip install --upgrade pip

連結したい画像を読み込みます。

img_a=cv2.imread("a.png")
img_b=cv2.imread("b.png")

画像のパスを指定するときに、パスの中に日本語が入っているとうまくいかないことがあります。

読み込んだ画像をリストに入れます。

list=[]
list.append(img_a)
list.append(img_b)

これで準備完了です♪
実際に結合してみましょう。

縦結合

image_v=cv2.vconcat(list)

image_v_name="tate.png"

cv2.imwrite(image_v_name,image_v)
画像1

横結合

image_h=cv2.hconcat(list)

image_h_name="yoko.png"

cv2.imwrite(image_h_name,image_h)
画像2

縦結合にはvconcat、横結合にはhconcatを使います。

※画像のサイズが違うと結合できないので注意してください。

4枚の画像を連結してみる

img_a=cv2.imread("a.png")
img_b=cv2.imread("b.png")

list1=[]

list1.append(img_a)
list1.append(img_b)

image_h1=cv2.hconcat(list1)

image_h1_name="yoko1.png"

cv2.imwrite(image_h1_name,image_h1)


img_c=cv2.imread("c.png")
img_d=cv2.imread("d.png")

list2=[]

list2.append(img_c)
list2.append(img_d)

image_h2=cv2.hconcat(list2)

image_h2_name="yoko2.png"

cv2.imwrite(image_h2_name,image_h2)


img_ab=cv2.imread("yoko1.png")
img_cd=cv2.imread("yoko2.png")

list3=[]

list3.append(img_ab)
list3.append(img_cd)

image_v3=cv2.vconcat(list3)

image_v3_name="tate3.png"

cv2.imwrite(image_v3_name,image_v3)
画像3

問題なく結合することができました :-)

最後に

本日はここまでとなります。

画像をドラッグ&ドロップするだけで結合できればあってもいいかなって感じですね。
とりあえずはCanvaでいいかも(笑)

最後まで読んでいただきありがとうございました!
スキ・フォロー・コメントお待ちしております。

Opencvを体系的に学びたい方におすすめです。

この記事が気に入ったらサポートをしてみませんか?