昊虹君 发表于 2022-11-26 11:22

Python-OpenCV中不用函数split()的实现图像多通道分离的方法——ndraary对象切片实现

Python-OpenCV中不用函数split()的实现图像多通道分离的方法——ndraary对象切片实现

Python-OpenCV中使用函数split()实现图像多通道分离的代码见下面这篇博文:
https://www.hhai.cc/thread-151-1-1.html

本篇博文告诉大家其实还可以用ndraary对象的切片操作实现图像多通道的分离。
关于ndraary对象的切片操作,大家可参考下面这篇博文:
https://www.hhai.cc/thread-117-1-1.html

这种方法的效率要比使用OpenCV的函数split()高得多。

用ndraary对象的切片操作实现图像多通道的分离的Python代码如下:
代码中用到的图片百度网盘下载链接如下:
https://pan.baidu.com/s/1DZxvV9bTaUsw7k6Pnh8fbw?pwd=zg2d

# -*- coding: utf-8 -*-
# 出处:昊虹AI笔记网(hhai.cc)
# 用心记录计算机视觉和AI技术

# 博主微信/QQ 2487872782
# QQ群 271891601
# 欢迎技术交流与咨询

# OpenCV的版本为4.4.0

import cv2 as cv
import sys

if __name__ == '__main__':
    # 读取图像,图像中的三个圆分别是只有R分量、G分量、B分量的纯色圆
    img = cv.imread('F:/material/images/2022/2022-11/pure_rgb.bmp')
    if img is None:
      print('Failed to read lena.jpg.')
      sys.exit()

    cv.imshow('pure-rgb', img)

    # 通道分离
    b1 = img[:, :, 0]
    g1 = img[:, :, 1]
    r1 = img[:, :, 2]

    cv.imshow('b_channel', b1)
    cv.imshow('g_channel', g1)
    cv.imshow('r_channel', r1)

    # 关闭窗口
    cv.waitKey(0)
    cv.destroyAllWindows()
运行结果如下:
http://pic1.hhai.cc/pic1/2022/2022-11/005/34.png
页: [1]
查看完整版本: Python-OpenCV中不用函数split()的实现图像多通道分离的方法——ndraary对象切片实现