相关文章推荐
无聊的生姜  ·  cv2.imread 和PIL ...·  昨天    · 
痴情的铁链  ·  ByteBuffer中flip、mark、r ...·  2 天前    · 
痴情的墨镜  ·  WPF MVVM ...·  3 月前    · 
旅行中的书包  ·  Java ...·  7 月前    · 
玩手机的蚂蚁  ·  jquery ...·  12 月前    · 
一身肌肉的烤红薯  ·  Configuration :: ...·  1 年前    · 

python OpenCV 图像通道数判断

作者:浅若清风cyf

这篇文章主要介绍了python OpenCV 图像通道数判断,文章基于Python的相关内容展开对文章主题的详细介绍,需要的小伙伴可以参考一下

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]

到此这篇关于python OpenCV 图像通道数判断的文章就介绍到这了,更多相关OpenCV 图像通道数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • 深入解析python返回函数和匿名函数
    深入解析python返回函数和匿名函数
    2022-04-04
  • Python常用数据类型之列表使用详解
    Python常用数据类型之列表使用详解
    2022-04-04
  • python和Appium移动端多设备自动化测试框架实现
    python和Appium移动端多设备自动化测试框架实现
    2022-04-04
  • python数据可视化之日期折线图画法
    python数据可视化之日期折线图画法
    2022-04-04
  • python结合shell自动创建kafka的连接器实战教程
    python结合shell自动创建kafka的连接器实战教程
    2022-04-04
  • python 中的pycrypto 算法加密
    python 中的pycrypto 算法加密
    2022-04-04
  • Python查找多个字典公共键key的方法
    Python查找多个字典公共键key的方法
    2022-04-04
  • 在Python中如何让字典保持有序
    在Python中如何让字典保持有序
    2022-04-04
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号