Python OpenCv中的单色级别
我必须在Python中更正蓝色级别,就像在Photoshop CTRL+L中一样。我在这个主题中找到了代码:,但这是RGB的,我只需要蓝色的。Python OpenCv中的单色级别,python,opencv,Python,Opencv,我必须在Python中更正蓝色级别,就像在Photoshop CTRL+L中一样。我在这个主题中找到了代码:,但这是RGB的,我只需要蓝色的。 请帮忙。TKS.使用分割功能分离通道 b,g,r = cv2.split(img) 还是切片 b = img[:,:,0] 好的,谢谢大家。我已经解决了。这是我的代码: img = cv2.imread("normal.png",1) b,g,r = cv2.split(img) inB
请帮忙。TKS.使用分割功能分离通道
b,g,r = cv2.split(img)
还是切片
b = img[:,:,0]
好的,谢谢大家。我已经解决了。这是我的代码:
img = cv2.imread("normal.png",1)
b,g,r = cv2.split(img)
inBlack = np.array([0], dtype=np.float32)
inWhite = np.array([255], dtype=np.float32)
inGamma = np.array([1.0], dtype=np.float32)
outBlack = np.array([218], dtype=np.float32)
outWhite = np.array([255], dtype=np.float32)
b = np.clip( (b - inBlack) / (inWhite - inBlack), 0, 255 )
b = ( b ** (1/inGamma) ) * (outWhite - outBlack) + outBlack
b = np.clip( b, 0, 255).astype(np.uint8)
img = cv2.merge((b,g,r))
使用切片选择蓝色通道:image[:,:,0]假设颜色格式是回复的opencv-bgrTanks的默认颜色,这是我第一次尝试,但我得到一个错误:img=np.clip img[:,:,0]-inBlack/inWhite-inBlack,0,255 value错误:操作数无法与形状10241024 3一起广播,这是因为在该线程中,inBlack和inWhite被定义为三维向量,如果只选择蓝色通道inBlack和inWhite应该是Scalars,我已经做了2次尝试:第一次frab回复我已经做了:inBlack=np.array[0,0,0],dtype=np.float32 inWhite=np.array[255],dtype=np.float32 inGamma=np.array[1.0],dtype=np.float32 outBlack=np.array[218],dtype=np.float32 outWhite=np.array[255],dtype=np.float32,但结果是浅灰色img。第二个阿希西回答:我已经把颜色分成了b,g,r;在我的代码中使用了THB颜色,但当我试图在最后合并它们时,我出现了一个错误:类型错误:merge最多使用2个参数。