2 つのビットマップ イメージがあります。1 つは、USB カメラで撮影した写真が含まれています。もう 1 つは四角形のような形状を含みますが、台形にすることもできます。たとえば、1 つの色のみを含むランダムな形状にすることもできます。画像の残りの部分は現在白です。
2 つの画像は同じサイズではありませんが、スケーリング アルゴリズムはここで最も難しい部分ではないため、2 つの画像がまったく同じサイズであると仮定します。
USBカメラの画像に自分の形を表示したい。白い部分は、コンビナゾンの目的で透明と見なされます。現在、画像をピクセルごとに編集することを考えていますが、それを行うAPIを探しています。
そのため、真ん中に家がある写真を撮り、赤い四角形を重ねると、結果の画像には家の周りに赤い四角形が付いた元の写真が表示されます。
これが役立つ場合は、.NET を使用しています。便利な機能が含まれている場合は、win32 API を使用することもできます。
編集:正しい軌道に乗ったので、答えを受け入れました。これは実際には非常に簡単です。
Bitmap^ overlay_image = gcnew Bitmap("overlay.bmp");
Bitmap^ original_image = gcnew Bitmap("original.bmp");
overlay_image->MakeTransparent(Color::White);
Graphics^ g_original = Graphics::FromImage(original_image);
g_original->DrawImage(overlay_image, 0, 0);
ほら、original_image
今、その上に赤い長方形があります。実際、私の 30fps USB カメラには十分な速さなので、リアルタイムで取得できます。
現在、スケーリングは行われていません。また、オーバーレイ イメージの背景が白であると仮定して、透明にします。