仕事で資料作成などをする際に、複数の画像を1つに結合して使いたい時があると思います。
こんな時、皆さんはどのようにしていますか?
例えばエクセルに隣り合わせで画像を貼り付け、画像をトリミング、調整してくっつけて、pdfで書き出す、といった方法を思いつくかもしれません。
ただこのようなアナログな方法は、時間がかかる上に継ぎ目がずれたりと使い勝手があまりよくありませんよね。
その悩みは、Pythonで解決できます。
以前、画像ファイルのデータ形式を変換するのに使用した、OpenCVというライブラリを覚えているでしょうか?
実は、OpenCVを使えば、画像の結合も簡単に行うことができます。
今回はこの方法について解説します。
キノコードでは、ほかにも、たくさんのプログラミング関連の動画を配信しております。
チャンネル登録がまだの方は、新着通知も届きますので、ぜひチャンネル登録をお願いします。
それでははじめましょう。
▼目次
00:00 ダイジェスト
00:16 はじめに
01:25 ライブラリのインポート、画像ファイルの準備
03:15 画像を縦結合、横結合する関数について
03:42 画像を縦に結合する方法
05:07 画像を横に結合する方法
06:03 おわりに
▼関連動画
【Pythonで自動化】画像ファイルの拡張子をまとめて変換|png/jpg/tiff/gif
Pythonで自動で画像収集→保存する方法|PythonでWebスクレイピング第04回
▼書き起こしブログ
https://kino-code.com/python_opencv/
▼自己紹介
ブログに自己紹介を書いております。
▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook : https://www.facebook.com/キノコード -105693727500005/
Website : https://kino-code.com/
▼書き起こし
“`python
!pip install opencv-python
“`
初めに、OpenCVをインストールします。
!、pip、install、opencv-pythonでインストールできます。
実行します。
“`python
import cv2
“`
次に、今回使用するcv2というモジュールをimportします。
モジュールがたくさん集まったのが、パッケージ、パッケージがたくさん集まったものがライブラリです。
実行します。
“`python
#画像データを変数に代入する
img_01 = cv2.imread(‘./kinocode_01.png’)
img_02 = cv2.imread(‘./kinocode_02.png’)
“`
今回は私のブログのスクリーンショット2枚を結合してみたいと思います。
画像ファイル名はそれぞれkinocode_01.png、kinocode_02.pngです。
この画像ファイルはブログに公開していますので、必要な方はそちらからダウンロードしてください。
まず結合したい画像ファイルを変数に代入します。
2つの画像を代入する変数をそれぞれimg_01、img_02とします。
cv2のimread関数で画像を読み込み、各変数に代入します。
なお、imread関数は、pngだけでなく、jpegやtiffなどのデータ形式にも対応しており、同じ方法で画像を読み込むことができます。
対応しているデータ形式の種類は、公式リファレンスをご確認ください。
それでは実行します。
“`python
#画像データを入れるリスト作成
v_list = []
“`
続いて結合する画像ファイルを収納するためのリストを作成します。
変数v_listに空のリストを渡しましょう。
実行します。
“`python
#画像データをリストに追加
v_list.append(img_01)
v_list.append(img_02)
“`
結合する画像データimg_01、img_02を、作成した空のリストv_listに追加していきます。
リストへのデータ追加は、appendメソッドを使用して行います。
実行します。
“`python
#画像データを縦に結合する処理(vはvartical(縦)の頭文字)
image_v = cv2.vconcat(v_list)
“`
ここからは画像データの結合に入っていきます。
あらかじめ画像の結合に使用する関数について説明します。
縦結合にはcv2のvconcat関数を、横結合にはhconcat関数を使用します。
関数名の”v”と”h”は、英語のverticalとhorizontalの頭文字で、画像の結合方向を表しています。
使い方は簡単で、引数に結合したい複数の画像を指定すればOKです。
それではvconcat関数を使用して画像を縦結合し、変数image_vに代入します。
vconcat関数の引数には、先ほど2枚の画像を収納したv_listを指定します。
実行します。
(続く)
#Python #自動化 #画像結合 #くっつける
コメント