最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
python OpenCV图像通道数判断代码示例
时间:2022-06-25 01:16:30 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下python OpenCV图像通道数判断代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
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]
相关文章
- 洛克王国世界粉粉星果实如何搭配技能 11-03
- 赞美母亲的话 11-03
- 神宠降临第十关怎么全收集 11-03
- 三国望神州貂蝉怎么获取 11-03
- 三国群英传策定九州刘备阵容如何搭配 11-03
- 境界刀鸣井上织姬有什么玩法技巧 11-03