src = cv2.imread('original.png', cv2.IMREAD_UNCHANGED)
src[:,:,2] = np.zeros([src.shape[0], src.shape[1]])
#cv2.imwrite('changed.png',src)
这确实消除了红色,但也给了它蓝色的背景,我该如何解决这个问题,或者可能以一种更好的方式来做。
理想情况下,输出将是这样
答案 0 :(得分:0)
问题在于您提取的是图像的红色分量,而不是图像的红色通道本身。请尝试以下操作:
src = cv2.imread('original.png', cv2.IMREAD_UNCHANGED)
print(src.shape)
#extract red channel
red_channel = src[:,:,2]
#write red channel to greyscale image
cv2.imwrite('changed.png', red_channel)
下面您将看到描述差异的资源。如果您发现此功能有用,请标记为答案。谢谢
资源: