この記事では、以下の二つの画像を
以下の画像のように中間に白い仕切りをつけて、一枚の画像として結合する方法をご紹介します。
それではさっそくやっていきましょう。
※この作業をpythonというプログラミング言語を用いて実行していきます。インストールから始めたい方は以下からご覧ください。
使用するライブラリ一覧
今回の記事では、以下のふたつのライブラリを使用します。
〇numpy
〇openCV
numpy はAnacondaを使用すればあらかじめインストールされていますが、openCVは自分で追加インストールが必要です。
openCVのインストール方法については以下の記事で解説しています。
2つの画像を結合するサンプルコード
早速ですが、以下が冒頭に紹介した処理を実行するサンプルコードです。
import cv2
import numpy as np
#画像読み込み
img1=cv2.imread('edge_value100.jpg',cv2.IMREAD_GRAYSCALE)
h,w=img1.shape[:2]
#画像読み込み⇒サイズ調整
img2=cv2.imread('edge_value220.jpg',cv2.IMREAD_GRAYSCALE)
img2=cv2.resize(img2,(w,h))
#中間に入れる白い仕切りを作る
center_bar=np.zeros((h,10),np.uint8)+255
#画像の結合
concate=np.concatenate([img1,center_bar,img2],1)
#画像の出力
cv2.imwrite('concatenate.jpg',concate)
※このプログラムを実行するファイルと同じ場所にedge_value100.jpg, edge_value220.jpgが保存されており、さらにこのプログラムを実行すると同じフォルダにconcatenate.jpgというファイルが出力されるようになっています。
サンプルコードの実行結果
先ほどのコードを実行してみましょう。
〇以下が実行前のフォルダ内
〇以下が実行後のフォルダ内
問題なく結合画像を作成できましたね。
画像を縦方向に結合したい場合
さきほどの画像は横方向への結合でしたが、ついでに縦方向への結合もやっておきましょう。
以下がそのサンプルコードです。
import cv2
import numpy as np
#画像読み込み
img1=cv2.imread('edge_value100.jpg',cv2.IMREAD_GRAYSCALE)
h,w=img1.shape[:2]
#画像読み込み⇒サイズ調整
img2=cv2.imread('edge_value220.jpg',cv2.IMREAD_GRAYSCALE)
img2=cv2.resize(img2,(w,h))
#中間に入れ津白い仕切りを作る
center_bar=np.zeros((10,w),np.uint8)+255
#画像の結合
concate=np.concatenate([img1,center_bar,img2],0)
#画像の出力
cv2.imwrite('concatenate.jpg',concate)
こいつを実行すると以下の結果が出力されました。
こちらも問題なく実行できましたね。
おわりに
というわけで今回はnumpyのconcatenateを使って、複数の配列画像を結合する方法をご紹介しました。
なお、numpyのconcatenateに関しては以下の記事で詳細解説しています。
興味があればこちらもぜひご覧ください。
【python】複数の配列を結合!numpy.concatenateの使い方!
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント