图像通道分离与合并

举报
北山啦 发表于 2022/09/06 21:35:39 2022/09/06
【摘要】 大家好,我是北山啦,今天要介绍的是,利用numpy和cv来处理图像中的通道分离与合并 图像基本知识 图像基础 通道分离与合并 图像基本知识灰度图:彩色图:import cv2 as cvimport numpy as npimport matplotlib.pyplot as pltdef show(img): if img.ndim == 2: plt.imshow(i...

大家好,我是北山啦,今天要介绍的是,利用numpy和cv来处理图像中的通道分离与合并

图像基本知识

在这里插入图片描述
灰度图:
在这里插入图片描述
彩色图:

在这里插入图片描述

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
def show(img):
    if img.ndim == 2:
        plt.imshow(img, cmap='gray',vmin=0,vmax=255)
    else:
        plt.imshow(cv.cvtColor(img, cv.COLOR_BGR2RGB))#cv用的BGR,需要转换为RGB
    plt.show()

图像基础

A = np.random.randint(0,256,(2,4))
A
array([[  4, 245, 223, 220],
       [191, 208, 190,  72]])
show(A)

在这里插入图片描述

B = np.random.randint(0,256,(2,4,3),dtype=np.uint8)
B
array([[[240,  57,  37],
        [141,  33, 113],
        [ 50, 252,   5],
        [125,  23, 206]],

       [[ 94, 128, 166],
        [218, 183, 231],
        [156, 136, 105],
        [208, 191, 119]]], dtype=uint8)

uint8为8位无符号整数类型,表示范围为[0, 255]

show(B)

在这里插入图片描述

A2 = np.float32(A)
A2 /= 255
show(A2)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IreIgOD4-1662470402352)(output_13_0.png)]

通道分离与合并

读取图片

img = cv.imread('./pic/cubic500x500.jpg')
show(img)

在这里插入图片描述

通道分离

b,g,r = cv.split(img)
show(r)

在这里插入图片描述

img.shape
(500, 500, 3)

通道合并

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

在这里插入图片描述

img3 = cv.merge([r,g,b])
show(img3)

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。