【发布时间】:2019-05-12 22:50:18
【问题描述】:
我也有一个 OpenCv 图像;
opencvImage = cv2.cvtColor(numpy_image, cv2.COLOR_RGBA2BGRA)
然后使用以下代码片段,我想删除透明度并设置白色背景。
source_img = cv2.cvtColor(opencvImage[:, :, :3], cv2.COLOR_BGRA2GRAY)
source_mask = opencvImage[:,:,3] * (1 / 255.0)
background_mask = 1.0 - source_mask
bg_part = (background_color * (1 / 255.0)) * (background_mask)
source_part = (source_img * (1 / 255.0)) * (source_mask)
result_image = np.uint8(cv2.addWeighted(bg_part, 255.0, source_part, 255.0, 0.0))
实际上,我可以将背景设置为白色,但是实际图像颜色也会发生变化。 我相信 COLOR_BGRA2GRAY 方法会导致此问题。这就是为什么,我尝试使用 IMREAD_UNCHANGED 方法,但我有这个错误:unsupported color conversion code in function 'cvtColor'
顺便说一句,我对任何解决方案持开放态度,我只是分享我的代码 - 可能需要一个小修复。
【问题讨论】:
标签: python-3.x image numpy opencv