python OpenCV 图像通道数判断

作者:浅若清风cyf? 时间:2023-10-15 18:21:22 

前言

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]

来源:https://juejin.cn/post/7082938938104479751

标签:python,OpenCV,图像,通道数,判断
0
投稿

猜你喜欢

  • Python os和os.path模块详情

    2022-12-08 12:53:45
  • python实现图像识别功能

    2023-08-09 08:45:00
  • Jupyter加载文件的实现方法

    2021-11-12 23:16:15
  • 利用python实现逐步回归

    2023-10-05 19:24:27
  • Python学习笔记之列表推导式实例分析

    2021-04-30 15:00:38
  • python Matplotlib基础--如何添加文本和标注

    2022-09-17 15:51:05
  • js replace()去除代码中空格的实例

    2024-04-29 13:36:26
  • 纯CSS3透明水晶盒

    2011-08-24 20:20:06
  • golang 字符串比较是否相等的方法示例

    2024-02-05 14:45:07
  • 学习ASP.NET八天入门:第一天

    2007-08-07 13:08:00
  • ECMAScript6函数默认参数

    2024-05-13 09:18:24
  • Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】

    2022-02-12 01:25:05
  • python Celery定时任务的示例

    2023-12-28 14:08:39
  • Python3实现将一维数组按标准长度分隔为二维数组

    2021-10-24 16:46:20
  • oracle查看执行最慢与查询次数最多的sql语句

    2024-01-21 05:12:11
  • python ansible服务及剧本编写

    2022-11-18 02:51:20
  • python基础之编码规范总结

    2021-04-17 06:13:26
  • asp中access升级到sql server后要做的工作

    2007-08-11 13:35:00
  • 关于Python卷积函数详解

    2023-06-14 01:09:27
  • javascript读取Json数据并分页显示,支持键盘和滚轮翻页

    2010-01-06 13:03:00
  • asp之家 网络编程 m.aspxhome.com