如何使用具有 alpha 颜色的圆形蒙版剪切图片?
how to cut picture with circle mask that has alpha color?
我有一个问题,我需要从这个输入开始:
第一个输入 src1 = input2.png
:
将此 src2 = input2.png
用作遮罩:
得到这个输出:
我试过了,但我不知道外部颜色是 alpha 颜色(完全透明)有多具体,我最终要么是黑色,要么是白色。
src1 = cv2imread('input1.png')
src2 = cv2.imread('input2.png')
大小相同
print(src2.dtype)
# uint8
dst = cv2.bitwise_and(src1, src2)
cv2.imwrite('res.jpg', dst)
这是 Python/OpenCV 中的一种方法。
只读第二张图片不变。然后将alpha通道从第二张图片复制到第一张图片。
图片 1:
图 2:
import cv2
import numpy as np
# read images
img1 = cv2.imread('picture1.png')
img2 = cv2.imread('picture2.png', cv2.IMREAD_UNCHANGED)
# copy alpha from second image to first image
result = img1.copy()
result = cv2.cvtColor(result, cv2.COLOR_BGR2BGRA)
result[:,:,3] = img2[:,:,3]
# save results
cv2.imwrite('picture1_circled.png', result)
结果:
我有一个问题,我需要从这个输入开始:
第一个输入 src1 = input2.png
:
将此 src2 = input2.png
用作遮罩:
得到这个输出:
我试过了,但我不知道外部颜色是 alpha 颜色(完全透明)有多具体,我最终要么是黑色,要么是白色。
src1 = cv2imread('input1.png')
src2 = cv2.imread('input2.png')
大小相同
print(src2.dtype)
# uint8
dst = cv2.bitwise_and(src1, src2)
cv2.imwrite('res.jpg', dst)
这是 Python/OpenCV 中的一种方法。
只读第二张图片不变。然后将alpha通道从第二张图片复制到第一张图片。
图片 1:
图 2:
import cv2
import numpy as np
# read images
img1 = cv2.imread('picture1.png')
img2 = cv2.imread('picture2.png', cv2.IMREAD_UNCHANGED)
# copy alpha from second image to first image
result = img1.copy()
result = cv2.cvtColor(result, cv2.COLOR_BGR2BGRA)
result[:,:,3] = img2[:,:,3]
# save results
cv2.imwrite('picture1_circled.png', result)
结果: