Emgu.CV を使用して、基本的な画像操作と構成を実行しています。私の画像はとしてロードされImage<Bgra,Byte>
ます。
質問 #1:この方法を使用するImage<,>.Add()
と、アルファ値に関係なく、画像が常にブレンドされます。代わりに、それらを重ねて合成し、含まれているアルファチャンネルを使用して画像をブレンドする方法を決定したいと思います。したがってimage1.Add(image2)
、image2 の完全に不透明なピクセルを呼び出すと、image1 のピクセルが完全に覆われ、半透明のピクセルはアルファ値に基づいてブレンドされます。
これが私が視覚的な形でやろうとしていることです。いくつかの「透明な穴」が切り取られた都市のイメージと、後ろのカエルがあります。これは次のようになります。
そして、これがopenCVが生成するものです。
OpenCVでこの効果を得るにはどうすればよいですか? そして、それは電話するのと同じくらい速くなりAdd()
ますか?
質問 #2:を呼び出すたびに新しいイメージを作成する代わりに、この構成をインプレースで実行する方法はありAdd()
ますか? (たとえば、?image1.AddImageInPlace(image2)
のバイトを変更します image1
)
注: Emgu.CV 内で回答を探しています。これは、パースペクティブ ワーピングをうまく処理するために使用しています。