画像処理ライブラリOpenCVのmax/minにより2つの画像の比較明/暗合成ができる
OpenCVを使うには次のようにインポートが必要。
import cv2
また合成する画像 'yellow.png'(幅400ピクセルx高さ300ピクセル)、'purple.png'(幅400ピクセルx高さ300ピクセル) は以下
'yellow.png'
'purple.png'
1. 比較明合成/比較暗合成
max、minの書式は以下の通り。src1、src2の各画素値を比較して大きい方(max)/小さい方(min)の画素値からなる新しい画像を生成する。src1、src2は同じサイズでないといけない。比較はチャンネルごと実施される。
dst = cv2.max(src1, src2) dst = cv2.min(src1, src2)
例の画像をmaxで合成する場合。yellow.pngの画素値は(B, G, R) = (0, 255, 255)、purple.pngの画素値は(B, G, R) = (255, 0, 255)で各チャンネルごとに大きい画素値が採用されるため、生成される画像は(B, G, R) = (255, 255, 255)、つまり白になる。
import cv2 src1 = cv2.imread('purple.png') src2 = cv2.imread('yellow.png') dst = cv2.max(src1, src2) cv2.imwrite('max.png', dst)
例の画像をImageChops.darkerで合成する場合。yellow.pngの画素値は(B, G, R) = (0, 255, 255)、purple.pngの画素値は(B, G, R) = (255, 0, 255)で各チャンネルごとに小さい画素値が採用されるため、生成される画像は(B, G, R) = (0, 0, 255)、つまり赤になる。
import cv2 src1 = cv2.imread('purple.png') src2 = cv2.imread('yellow.png') dst = cv2.min(src1, src2) cv2.imwrite('min.png', dst)
2. リファレンス
OpenCV > Operations on arrays > max()
OpenCV > Operations on arrays > min()
0 件のコメント:
コメントを投稿