<p>阿尔法不是一个通道,是一个面具。在</p>
<p>我的解决方案:</p>
<pre><code>import cv2
import numpy as np
foreground = cv2.imread('foreground.jpg')
background = cv2.imread('background.jpg')
kernel = np.ones((5, 5), np.uint8)
foreground_gray = cv2.cvtColor(foreground, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(foreground_gray, 240, 255, cv2.THRESH_BINARY)
opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
output = np.zeros(foreground.shape, dtype=foreground.dtype)
for i in range(3):
output[:, :, i] = background[:, :, i] *(opening/255) + foreground[:, :, i] *(1-opening/255)
cv2.imshow("img", output)
cv2.waitKey(0)
</code></pre>
<p><strong>前景.jpg</strong></p>
<p><a href="https://i.stack.imgur.com/QlDbg.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/QlDbg.jpg" alt="enter image description here"/></a></p>
<p><strong>背景.jpg</strong></p>
<p><a href="https://i.stack.imgur.com/VA8Gi.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/VA8Gi.jpg" alt="enter image description here"/></a></p>
<p>输出:</p>
<p><a href="https://i.stack.imgur.com/hX7uG.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/hX7uG.png" alt="enter image description here"/></a></p>