信息发布→ 登录 注册 退出

python OpenCV 图像通道数判断

发布时间:2026-01-11

点击量:
目录
  • 前言
  • 教程
    • 1、读取/保存图片
      • 1)imread和imwrite方法
      • 2)imdecode和imencode方法
    • 2、编码转换
      • 1)BGR转RGB
      • 2)BGR转GRAY
    • 3、快速判断图像是否单通道灰度图
      • 4、获取图像通道数

      前言

      OpenCV是图像处理常用的库,作为初学者,往往从图片的读取、保存、查询图片的信息开始,下面将分享Python下OpenCV的一些基本使用方法,掌握这些基本方法后,能够更好地与matplotlib、numpy等结合使用,完成相应的图像操作。

      教程

      1、读取/保存图片

      1)imread和imwrite方法

      注:此方法遇到中文路径会报错!

      import cv2
      
      # 参数1:文件路径
      # 参数2:读取方式
      # 常用几种模式:
      # 	灰度图:cv2.IMREAD_GRAYSCALE
      #	BGR三通道彩色图:cv2.IMREAD_COLOR
      #	原始通道(自动判断:单通道/三通道/四通道等):cv2.IMREAD_UNCHANGED
      img = cv2.imread('图像文件路径(全英文)', cv2.IMREAD_COLOR)
      
      # 参数1:文件路径
      # 参数2:待保存的图像(BGR格式的uint8 ndarray类型)
      # 参数3【可选】:压缩模式以及质量等
      # 常用几种模式:
      # 	灰度图:cv2.IMREAD_GRAYSCALE
      #	BGR三通道彩色图:cv2.IMREAD_COLOR
      #	原始通道(自动判断:单通道/三通道/四通道等):cv2.IMREAD_UNCHANGED
      img_saved = cv2.imwrite('图像输出路径(含图像名)', img)
      
      

      2)imdecode和imencode方法

      import cv2
      import numpy as np
      
      # cv2.imdecode():从指定的内存缓存中读取数据,并把数据转换成图像格式
      src_img_path = './image.png'
      img=cv2.imdecode(np.fromfile(src_img_path, dtype=np.uint8),cv2.IMREAD_UNCHANGED)
      
      # cv2.imencode():将图片格式转换成流数据,写入内存缓存中,可以再调用.tofile()写入到磁盘中
      out_img_path = './image.jpg'
      extension = '.jpg'
      cv2.imencode(extension,img)[1].tofile(out_img_path)
      
      

      2、编码转换

      1)BGR转RGB

      matplotlib.pyplot的imshow()方法广泛用于显示图像,然而opencv默认加载的图像时BGR格式,直接显示会出现颜色异常,需要先进行转换

      img_rgb = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
      

      2)BGR转GRAY

      三通道的BRG彩色图像转换成单通道的灰度图

      img_gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
      

      3、快速判断图像是否单通道灰度图

      if img.ndim == 2:
      	print('图像是单通道灰度图')
      else:
      	print('图像包含多个通道')
      

      4、获取图像通道数

      def get_n_channel(img):
      	if img.ndim == 2:
      		print('通道数:1')
      		return 1
      	else:
      		print('图像包含多个通道')
      		return img.shape[2]
      在线客服
      服务热线

      服务热线

      4008888355

      微信咨询
      二维码
      返回顶部
      ×二维码

      截屏,微信识别二维码

      打开微信

      微信号已复制,请打开微信添加咨询详情!