如何解决OpenCV Python如何将一种颜色保留为将图像转换为灰度 蒙版的橙色图像蒙版的灰色图像输出图像
我如何做到这一点,因此图像中的所有部分(除了橙色圆锥体)都是灰度级的。使用opencv python。
解决方法
您可以使用bitwise_and()
函数和thresholding
来实现自己的目标。
步骤:
- 为所需区域生成
mask
。(此处使用thresholding
,但也可以使用其他方法) - 使用
regions
(图像和遮罩)提取所需的bitwise_and
。 - 添加
masked regions
以获得输出。
这里是示例代码:
import cv2
import numpy as np
img = cv2.imread('input.jpg')
# creating mask using thresholding over `red` channel (use better use histogram to get threshoding value)
# I have used 200 as thershoding value it can be different for different images
ret,mask = cv2.threshold(img[:,:,2],200,255,cv2.THRESH_BINARY)
mask3 = np.zeros_like(img)
mask3[:,0] = mask
mask3[:,1] = mask
mask3[:,2] = mask
# extracting `orange` region using `biteise_and`
orange = cv2.bitwise_and(img,mask3)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img = cv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)
# extracting non-orange region
gray = cv2.bitwise_and(img,255 - mask3)
# orange masked output
out = gray + orange
cv2.imwrite('orange.png',orange)
cv2.imwrite('gray.png',gray)
cv2.imwrite("output.png",out)
结果:
蒙版的橙色图像
蒙版的灰色图像
输出图像
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。