CV - 色彩空间 转换/分离/合并


一、颜色空间转换

cvtColor(src, code[, dst[, dstCn]]) -> dst

  • src:原始图像
  • code:转换的代码或者标识
  • 返回值:已完成转换的图像

lena = cv2.imread('lena.jpg')

lena_gray = cv2.cvtColor('lena.jpg', cv2.COLOR_BAYER_RG2GRAY)
cv_show(lena_gray)

img.shape # (H, W, C)    
#  (200, 200, 3)

二、分离 split

b,g,r = cv2.split(img)
r
array([[223, 222, 223, ..., 235, 232, 202],
       [225, 224, 223, ..., 236, 234, 198],
       [225, 226, 226, ..., 233, 222, 178],
       ...,
       [ 90,  92,  93, ..., 148, 153, 158],
       [ 87,  91,  89, ..., 156, 165, 165],
       [ 82,  94,  92, ..., 159, 172, 177]], dtype=uint8)
cv_show(b)
cv_show(g)
cv_show(r)
r.shape
# (200, 200)

img=cv2.merge((b,g,r))
img.shape # (200, 200, 3)
# 只保留 R 通道

cur_img = img.copy()
cur_img[:,:,0] = 0
cur_img[:,:,1] = 0
# cv_show('R',cur_img)

cur_img
'''
array([[[  0,   0,  91],
        [  0,   0,  91],
        [  0,   0,  91],
'''

array([[[  0,   0,  91],
        [  0,   0,  91],
        [  0,   0,  91],
        ...,
        [  0,   0, 122],
        [  0,   0, 122],
        [  0,   0, 122]],

        ...,
        [  0,   0, 120],
        [  0,   0, 121],
        [  0,   0, 121]]], dtype=uint8)
# 只保留 G
cur_img = img.copy()
cur_img[:,:,0] = 0
cur_img[:,:,2] = 0

cv_show('G',cur_img)
# 只保留 B
cur_img = img.copy()
cur_img[:,:,1] = 0
cur_img[:,:,2] = 0

cv_show('B',cur_img)

三、合并 merge


img2 = cv2.merge([b, g, r])

posted @   月思  阅读(187)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示