opencv imread()默认加载三通道图像

2023-10-27

今天用python opencv 函数 cv2.imread加载图像。图像是单通道的但是加载完之后就变成三通到了。处理了半天的bug才发现是这里出现了问题。

介绍一下imread函数:
c++函数模型

#include <opencv2/imgcodecs.hpp>
Mat cv::imread(const String & 	filename,int flags = IMREAD_COLOR )	

python 函数模型

import cv2
image=	cv2.imread(	filename,[flags]	)

可以看到,imread函数原型非常简单,可以总结为三点

返回值,Mat 类型, 即返回读取的图像,读取图像失败时返回一个空的矩阵对象(Mat::data == NULL)
参数1 filename, 读取的图片文件名,可以使用相对路径或者绝对路径,但必须带完整的文件扩展名(图片格式后缀)
参数2 flags, 一个读取标记,用于选择读取图片的方式,默认值为IMREAD_COLOR,flag值的设定与用什么颜色格式读取图片有关

c++定义	python定义	说明
IMREAD_UNCHANGED	Python: cv.IMREAD_UNCHANGED	如果设置,则按原样返回加载的图像(使用Alpha通道,否则会被裁剪)
IMREAD_GRAYSCALE	Python: cv.IMREAD_GRAYSCALE	如果设置,则始终将图像转换为单通道灰度图像(编解码器内部转换)。
IMREAD_COLOR	Python: cv.IMREAD_COLOR	如果设置,请始终将图像转换为3通道BGR彩色图像。
IMREAD_ANYDEPTH	Python: cv.IMREAD_ANYDEPTH	如果设置,则在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位。
IMREAD_ANYCOLOR	Python: cv.IMREAD_ANYCOLOR	如果设置,则以任何可能的颜色格式读取图像。
IMREAD_LOAD_GDAL	Python: cv.IMREAD_LOAD_GDAL	如果设置,使用gdal驱动程序加载图像
IMREAD_REDUCED_GRAYSCALE_2	Python: cv.IMREAD_REDUCED_GRAYSCALE_2	如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/2。
IMREAD_REDUCED_COLOR_2	Python: cv.IMREAD_REDUCED_COLOR_2	如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/2。
IMREAD_REDUCED_GRAYSCALE_4	Python: cv.IMREAD_REDUCED_GRAYSCALE_4	如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/4
IMREAD_REDUCED_COLOR_4	Python: cv.IMREAD_REDUCED_COLOR_4	如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/4
IMREAD_REDUCED_GRAYSCALE_8	Python: cv.IMREAD_REDUCED_GRAYSCALE_8	如果设置,则始终将图像转换为单通道灰度图像,图像尺寸减小1/8。
IMREAD_REDUCED_COLOR_8	Python: cv.IMREAD_REDUCED_COLOR_8	如果设置,则始终将图像转换为3通道BGR彩色图像,图像尺寸减小1/8。
IMREAD_IGNORE_ORIENTATION	Python: cv.IMREAD_IGNORE_ORIENTATION	如果设置,请不要根据EXIF的方向标志旋转图像。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

opencv imread()默认加载三通道图像 的相关文章

  • Shell 从入门到精通系列 (第一章 Shell编程基础)

    1 什么是变量 从本质上讲 变量就是在程序中保存用户数据的一块内存空间 变量名就是这块内存空间的地址 在程序执行过程当中 保存数据的内存空间内容可能会不断发生变化 但是代表内存地址的变量名却保持不变 由于变量的值时在计算机的内存中 所以当计
  • C#基本数据类型

    C 数据类型分为值类型和引用类型 值类型 常用的有4种 包括整型 浮点型 布尔型 枚举型等 引用类型 常用的有5种 包括类 接口 数组 委托 字符串等 如果从内存存储空间的角度看 值类型的 值是存放到栈中的 每次存取值都会在该内存中操作 而
  • SQLyog的免费使用方式

    1 删除注册表 会继续使用30天 输入 regedit 进入注册表 找到注册表 HEYK CURRENT USER Software FCE28CE8 D8CE 4637 9BC7 93E4C0D407FA 下的InD保存着SQLyog的使
  • Windows10下超详细Mysql安装

    目录 0 前言 1 下载mysql 2 开始安装 3 验证安装 4 环境变量配置 0 前言 Mysql简介 MySQL是一种开源的关系型数据库管理系统 RDBMS 它使用SQL 结构化查询语言 语言进行数据的存储和访问 MySQL的设计目标

随机推荐

  • U盘启动重装系统报cdboot:couldn't find ntldr 错误

    进BIOS把硬盘格式从IDE改为AHCI二 硬盘主MBR引导损坏 要用PE启动盘进行修复引导 解决方法 在PE打开分区工具Disk Genius点硬盘点重建主引导记录MBR
  • 微信小程序之30分钟学会开发小程序(小程序总览)

    一 注册小程序账号 下载IDE 1 官网注册https mp weixin qq com 并下载IDE 2 官方文档一向都是最好的学习资料 注意 1 注册账号之后会有一个appid 新建项目的时候需要填上 不然很多功能是用不了的 比如不能预
  • 两个真实线上升级故障让你彻底搞懂package.json中的脱字符(^)

    大厂技术 高级前端 Node进阶 点击上方 程序员成长指北 关注公众号 回复1 加入高级Node交流群 作者 掘金干货君 原文 https juejin cn post 7121520457760653349 package json 相信
  • object标签上悬浮div标签,可拖拽,播放rtsp视频

    object上方悬浮div并实现拖拽 云台控制等操作 注意 1 在static目录下创建video html 2 必须安装2 2 1 win32版本的vlc插件 3 vlc安装文件 链接 https pan baidu com s 1yQJ
  • 日志聚合工具loki

    目录 1 loki是什么 2 loki特点 3 loki组成 4 loki安装 4 1 添加helm的chart库 4 2 安装loki及promtail 4 3 安装grafana 5 配置和使用 6 日志选择和过滤 6 1 日志选择器
  • ROS Melodic 安装时所遇到的问题及解决方法

    文章目录 参考教程 所遇到的问题 1 sudo rosdep init 2 ERROR default sources list file already exists etc ros rosdep sources list d 20 de
  • 接口入参格式为x-www-form-urlencoded 的处理

    一般情况下接口入参数格式要求是JSON通用格式 但有些时候接口入参数要求是x www form urlencoded格式 这种格式前端就不能传递JSON格式数据了 如果传递JSON数据的话 接口会报异常 下面对此种情况做解释处理 1 接口入
  • Elasticsearch 配置内存量

    场景 由于配置es之后服务器内存负载过高 原因 初步原因是es内存暂用过高 处理 修改es的配置文件jvm options 根据服务器情况一般是配置服务器内存的一半
  • 手残,双硬盘(SSD+HDD)双系统(Win10+ubuntu)用easyBCD删除win10引导项怎么办?戳这里

    问题描述 博主处女座 电脑双硬盘 固态 机械 因为学习需要 装了双系统 Win10 Ubuntu 这个也是费了不少功夫才成功 不知道怎么装的可以看我这个http blog csdn net x1825048925 article detai
  • 怎样的架构设计才是真正的数据仓库架构

    在各个网站和论坛 一说到数据仓库 基本都想到了 ETL DW OLAP 一说到数据仓库设计 就是按照行业规范和客户需求调研 设计主题 然后设计对应的 事实表 维表 但是 这就是真正的数据仓库总体设计么 关于上面说的主题设计 以及前端展现 这
  • cfssljson详解1

    一 cfssljson简介 大多数cfssl命令的输出内容都是JSON格式的 而cfssljson工具可以将这些JSON格式的输出内容作为输入内容 并按照key键 key certificate CSR and bundle 将之区分然后输
  • 机器学习-决策树算法ID3实现,含例子(红酒分类)

    决策树原理实现代码如下所示 参考自机器学习实践 Peter Harrington import math x 0 1 no 0 1 no 1 0 no 1 1 yes 1 1 no 1 1 no 1 1 maybe 1 1 maybe 1
  • 手把手教你搭建SpringCloudAlibaba项目

    SpringCloud Alibaba全集文章目录 零 手把手教你搭建SpringCloudAlibaba项目 一 手把手教你搭建SpringCloud Alibaba之生产者与消费者 二 手把手教你搭建SpringCloudAlibaba
  • 数据结构——AOE与算法——关键路径的计算

    AOE图 节点表示事件 弧表示活动 弧的权重表示活动进行的时间 关键路径 在AOE网中 从起始点到终点具有最大路径长度的一条路径被称为关键路径 算法思路 1 利用拓扑排序求出AOE网的一个拓扑序列 2 从拓扑排序的序列的第一个顶点 源点 开
  • 设计模式的 C++ 实现---策略模式

    前文回顾 单例模式 一 单例模式 二 观察者模式 简单工厂模式 工厂方法模式 一 工厂方法模式 二 抽象工厂模式 一 抽象工厂模式 二 原型模式 外观模式 中介者模式 代理模式 装饰者模式 前言 所谓策略即解决一件事情的算法 或者方法 是一
  • intel至强服务器芯片制程,64核自研芯片性能提升7倍,追平英特尔至强

    不久之前 英特尔发布了至强铂金8284处理器 单个内核拥有高达28核心56线程 刷新了业界顶尖水平 事实上 在服务器级处理器中 英特尔的产品一向具有重要的地位 它的服务器芯片不仅技术先进 而且耐用程度优质 能耗控制良好 可以说是服务器必备产
  • AJAX请求返回流 下载Excel文件

    AJAX请求返回流 下载Excel文件 模拟请求 var xhr new XMLHttpRequest 文件名称 var fileName 1 xls xhr open POST http 127 0 0 1 8001 Api Downlo
  • 并发编程篇

    并发编程篇 线程基础 线程和进程的区别 面试官 说一下线程和进程的区别 候选人 嗯 好 进程是正在运行程序的实例 进程中包含了线程 每个线程执行不同的任务 不同的进程使用不同的内存空间 在当前进程下的所有线程可以共享内存空间 线程更轻量 线
  • docker部署常用服务器(redis,nginx,mysql,tomcat)

    docker部署服务器 docker部署redis docker部署nginx docker部署mysql docker部署tomcat docker部署redis 参考这篇博客 写的很详细 docker部署nginx 1 搜索镜像 doc
  • opencv imread()默认加载三通道图像

    今天用python opencv 函数 cv2 imread加载图像 图像是单通道的但是加载完之后就变成三通到了 处理了半天的bug才发现是这里出现了问题 介绍一下imread函数 c 函数模型 include