我知道如何使用cvtColor()
将BGR图像转换为YCrCb格式,并在OpenCV中使用split()
分离不同通道。但是,这些通道显示为灰度图像:
imgYCrCB = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
Y, Cr, Cb = cv2.split(imgYCrCB)
cv2.imshow("Y", Y)
cv2.imshow("Cr", Cr)
cv2.imshow("Cb", Cb)
cv2.waitKey(0)
此代码给予以下结果:
灰度图像:
我想显示Cb和Cr通道的颜色,如下图所示:
我该怎么做?
2条答案
按热度按时间hl0ma9xz1#
获得显示
Cb
和Cr
的假色效果的技巧相对简单:Cb
假色:用值
128
填充Y
和Cr
,并转换回BGR。用值
128
填充Y
和Cb
,并转换回BGR。值128会将中间灰色套用至Y。
当Cb=128时,没有“蓝色调”(
Cb
是“中性的”)。当Cr=128时,没有“红色调”(
Cr
为“中性”)。代码示例:
Y
:onlyCb_as_bgr
:onlyCr_as_bgr
:s5a0g9ez2#
这里有一个简单的方法,通过使用通道、反转通道和Python/OpenCV中的中灰度图像来组合通道。
输入:
Y:
铬:
Cb: