\

PythonとOpenCVを使用して、2つの画像をオーバーレイ(重ね合わせ)する方法について説明します。この記事では、透明なPNG画像を別の画像の上にオーバーレイする方法を中心に解説します。

まず、2つの画像を読み込みます。ここでは、背景画像をbackground.png、オーバーレイする画像をoverlay.pngとします。

import cv2

background = cv2.imread('background.png', cv2.IMREAD_UNCHANGED)
overlay = cv2.imread('overlay.png', cv2.IMREAD_UNCHANGED)

次に、各画像のアルファチャンネル(透明度)を0-255の範囲から0-1の範囲に正規化します。

alpha_background = background[:,:,3] / 255.0
alpha_overlay = overlay[:,:,3] / 255.0

そして、各色チャンネルに対して以下の計算を行います。

for color in range(0, 3):
    background[:,:,color] = alpha_overlay * overlay[:,:,color] + \
                            alpha_background * background[:,:,color] * (1 - alpha_overlay)

最後に、アルファチャンネルを調整し、その値を0-255の範囲に戻します。

background[:,:,3] = (1 - (1 - alpha_overlay) * (1 - alpha_background)) * 255

以上で、画像のオーバーレイが完了します。結果を表示するには以下のコードを使用します。

cv2.imshow("Composited image", background)
cv2.waitKey(0)

この方法を使用すれば、PythonとOpenCVを使用して2つの画像を簡単にオーバーレイすることができます。。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です