はじめに アルファチャンネル付きPNGを重ね合わせる関数を作成しました。 OpenCV 2.3.1から透過pngが読み込めるようになりましたが、画像を透過して重ねる機能は用意されていません。 ネット上の記事では1画素ずつ演算する方法や、ROIを使って紹介されることが多いようですが、領域サイズの指定にシビアなことや、元画像の範囲外への描画ができないなど取り回しが悪くなります。 そこで本稿ではcv::warpPerspective()を用いた重ね合わせを紹介します。 サンプルコード: 1. 単純な重ね合わせ(transparent.cpp) 2.GUIで位置を調整(transparent2.cpp) 1.透過画像の読み込み 第2引数にIMREAD_UNCHANGEDを指定するとアルファチャンネルが読み込まれます。 cv::Mat transimg = cv::imread("transpare