質問: 画像とヒートマップを使って、二つを重ねたり強調させた画像を表示させたいです。 **重ねる例** ![画像A](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/a4bd3ae7303b7c1655fdb22cd377261e.png)![ヒートマップ](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/018e2664ecdcfc5ad4f869d6f31bb5ab.jpeg) 画像はRGBの[224*224*3] 値は0~255 ヒートマップは[224*224] 値は0.~1. 作りたい画像 ![合成A](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/9b531bf7533dd9d1db30313649963e95.jpeg) **強調の例** ![画像B](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/9df5ea5d613ed669d608d23912969081.jpeg)![ヒートマップ](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/018e2664ecdcfc5ad4f869d6f31bb5ab.jpeg) 画像は[224*224*3] 値は0.~1. ヒートマップは[224*224] 値は0.~1. 作りたい画像 ![合成B](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/261b2cff1e0d8125e9ad47ddf3334c43.jpeg) ライブラリはmatplotlibかopenCVの使用を考えています。 どのような計算、または関数を使用したら例に挙げた二つを実現できるのでしょうか。ご教示お願いします。
回答: アルファブレンディングで質問内容は実現できます。 OpenCV を使ったやり方は以下のリンクを参照ください。 OpenCV - アルファブレンドで画像を合成する方法 ``` import cv2 import matplotlib.pyplot as plt import numpy as np img1 = cv2.imread('1.png') img2 = cv2.imread('2.jpeg') assert img1.shape == img2.shape, "2つの画像のサイズは一致していなければならない" # アルファブレンディング alpha = 0.7 blended = cv2.addWeighted(img1, alpha, img2, 1 - alpha, 0) # 結果を表示する。 plt.imshow(cv2.cvtColor(blended, cv2.COLOR_BGR2RGB)) plt.axis('off') plt.show() ``` !イメージ説明