python OpenCV 图像通道数判断
目录
前言教程1、读取/保存图片1)imread和imwrite方法2)imdecode和imencode方法2、编码转换1)BGR转RGB2)BGR转GRAY3、快速判断图像是否单通道灰度图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]
到此这篇关于python OpenCV 图像通道数判断的文章就介绍到这了,更多相关OpenCV 图像通道数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?