Python : 画像を縦、横に連結(vconcat,hconcat)
PythonのOpencvを使った、画像の縦横の連結方法についてです。
最近、処理画像の報告用にプログラムを作っている際に、
通常画像と検出画像を並べて動画にするとやりやすいかな~と思い、
使っているのもあり、載せています。
プログラムの下記方はopencvのvconcat,hconcatを使います。
注意事項としては、画像は必ず、同じサイズ、タイプである必要があります。
今回はサイズは(225,400,3)
タイプはunit8
これが違うとつなげられないのでご注意ください。
プログラムはまずopencvを読み込みます。
import v2
画像を読み込みます。
いつものlenaさんを使います。
frame = cv2.imread('lena.jpg')
この後、連結をします。
縦に連結します。
縦はvconcatにてつなげます。
カッコのなかに[]がはいるのを忘れないようにしてください。
frame_v=cv2.vconcat([画像1,画像2,画像3,・・・,画像10])
横はhconcatにてつなげます。
frame_h = cv2.hconcat([画像1,画像2,画像3,・・・,画像10])
vにすると画像が縦につながり、hにすると横につながっていくので、
vは幅方向を合わせる、hは高さ方向を合わせるという意味なのですかね。
プログラムは下記です。
#opencvをインポートします。
import cv2
#画像を読み込む
frame = cv2.imread('lena.jpg')
#縦に連結します。
frame_v = cv2.vconcat([frame,frame])
#横に連結します。
frame_h = cv2.hconcat([frame,frame,frame])
#画像を書き込みます
cv2.imwrite('vconcat.jpg',frame_v)
cv2.imwrite('hconcat.jpg',frame_h)
今までにpythonについて書いた記事はここにリンクを貼ってあります。
興味があればぜひご覧ください。