OpenCV学习之路(五) 图像的载入、显示和输出

数字图像处理——opencv入门 OpenCV介绍 这是一篇关于opencv的学习指南。 首先,opencv可以运行于linux平台、windows平台、Android平台及iOS平台。 在这里,我选择windows平台进行opencv环境的配置。 注意,要使用opencv库,您有两个选择。 一是通过使用预构建的库进行安装,或者通过源文件中创建自己的库进行安装。 我们选择了法一,需要在最新的Microsoft VIsu... 阅读详情

目录

 

图像的载入与显示

输出图像到文件

综合实例代码

滑动条的创建和使用

鼠标操作


图像的载入与显示

imread() 函数和 imshow() 函数完成了最简单的图像载入和显示。

1. imread() 函数。原型如下:

Mat imread(const string& filename, int flags = 1);

(1)第一个参数,const string& 类型的 filename,对应需要载入的图片路径名。

(2)第二个参数,int 类型的 flags,为载入标识,指定一个加载图像的颜色类型。默认值为1,代表彩色图像。有如下枚举值:

CV_LOAD_IMAGE_UNCHANGED———等价取值为-1,新版本的OpenCV中将其废置,忽略。

CV_LOAD_IMAGE_GRAYSCALE———等价取值为0,始终将图像转换成灰度再返回。

CV_LOAD_IMAGE_COLOR——等价取值为1,始终将图像转到彩色再返回。

CV_LOAD_IMAGE_ANYDEPTH——等价取值为2,若载入图像的深度为16或32则返回对应深度的图像,否则将转为8位图像再返回。

若输入有冲突的标志,将使用较小的数字值。比如CV_LOAD_IMAGE_COLOR|CV_LOAD_IMAGE_ANYCOLOR将载入三通道图像。如果想载入最真是无损的原图像,可以选择CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR。

因为 flags 是 int 类型的变量,若我们不适用固定的枚举值,可以做如下判定:

flags > 0 返回一个 3 通道的彩色图像(解码后的图像会以BGR的通道顺序进行存储,即蓝、绿、红);

flags = 0 返回灰度图像;

flags < 0 返回包含 Alpha 通道的加载图像(默认情况下不包含 Alpha 通道)。

imread("cat.jpg", 2 | 4); //载入无损的源图像

imread("cat.jpg", 0); //载入灰度图

imread("cat.jpg", 199); //载入 3 通道的彩色图像

 

2. imshow() 函数。原型如下:

void imshow(const string& winname, InputArray mat);

(1)第一个参数,const string& 类型的 winname,为需要显示的窗口标识名称。

(2)第二个参数,InputArray 类型的 mat,为需要显示的图像。

imshow() 函数用于在指定的窗口中显示图像。若窗口是用 CV_WINDOW_AUTOSIZE(默认值)标志创建的,那么将显示图像原始大小。否则,将图像进行缩放以适应窗口。imshow() 函数缩放图像,取决于图像的深度;

如果载入的图像是 8 位无符号类型,则显示图像本来的样子。

如果图像是 16 位无符号数类型或 32 位整型,则用像素值除以 256,值的范围从 [0,256*256] 映射到 [0,255]。

如果图像是 32 位浮点型,像素值乘以 255。值的范围从 [0,1] 映射到 [1,255]。

3. namedWindow() 函数。原型如下:

void namedWindow(const string& winname, int flags = WINDOW_AUTOSIZE);

(1)第一个参数,const string& 类型的 winname,为窗口名称。

opencv学习笔记(十一)——图像的载入,显示和输出到文件 说明说明一下,之前的opencv学习基本是在opencv1.0的基础下学习的,在这节以后的都是基于opencv2.X下的学习。参考的是浅墨大神的《opencv3编程入门一书》。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 在OpenCV2.X中写程序的标准三 阅读详情

相关推荐

Opencv系列(一):图像的载入、显示和输出

应用实例 //----------【头文件和命名空间包含部分】---------- #include<opencv2/opencv.hpp> //包含头文件 #include "opencv2/highgui.hpp" using namespace cv; //命名空间 //----------【main()函数】---------- int main() { //定义两个M...

ZH、KLKF的博客 582

【OpenCV-Python】图像的载入、显示和输出(imread()、imshow()、waitKey()、namedWindow()、imwrite())

图像的载入:imread()函数 imread()函数可以用来非常便捷地读取文件中的图片到Opencv中。这个函数一般需要两个参数: (1)载入图片的路径名。如果图像文件在工程文件夹下,可以直接用文件名读取,如“cat.jpg”,否则需要输入完整的访问路径,如“D:\\test\\lena.png”。这里还有几个tips: imread函数中,一个点代表省略当前文件夹路径,两个点则代表回...

M&Q的博客 1395

2026 具身智能 VLA/WAM 全栈学习与训练路线:从动作建模、SFT、RL 到世界模型的 RTX PRO 6000 96GB 单卡实战指南

我会把这张表做成“”而不是只列论文名:先核对每个模型截至的公开代码、训练目标和数据接口,再单独给你一套。对于没有公开、只有推理代码或训练细节不完整的模型,我会明确标出来,避免把“论文里提到”误写成“可复现”。目前有一个重要更新:。截至今天 NVIDIA 官方开源主线已经是换成 Cosmos-Reason2-2B/Qwen3-VL 架构,动作端仍是连续路线,而且官方明确给出单卡微调时默认只训练,峰值显存约。所以你的 96GB 单卡对 GR00T SFT 非常宽裕。可以。下面我按,把它整理成一张真正面向“

u013250861的博客 431

Ubuntu 24.04 搭建 Squid 代理服务器终极指南:从入门到 HTTPS 缓存AI模型

本文详细指导在Ubuntu 24.04系统部署Squid代理服务器,实现AI大模型文件的高效缓存。重点内容包括:1) 安装squid及必备的squid-openssl扩展包;2) 配置HTTPS拦截(SSL-Bumping)功能,创建CA证书和SSL数据库;3) 优化缓存策略,设置4TB存储空间并强制缓存常见大文件格式;4) 结合华为防火墙实现透明代理。文章特别强调实际部署中的关键注意事项和常见错误解决方案,如证书路径配置、权限设置等问题,帮助用户快速搭建企业级缓存代理服务。

zlt315的博客 1915

GNSS/INS松组合导航实战:如何用卡尔曼滤波提升定位精度(附MATLAB代码)

本文深入探讨了GNSS/INS松组合导航的工程实践,详细阐述了如何利用卡尔曼滤波算法融合卫星与惯性数据以提升定位精度。内容涵盖从仿真环境搭建、误差状态卡尔曼滤波器(ESKF)设计,到状态与观测方程实现、噪声参数调试及常见问题排查的全过程,并提供了可直接运行的MATLAB代码,为开发高精度、鲁棒的组合导航系统提供实战指南。

weixin_29057163的博客 158

银河麒麟系统安装redis【亲测可行】

架构:Linux 5.10.0-9-generic x86_64 GNU/Linux。redis版本:redis-6.2.3.tar.gz。然后在执行make install,结束;OS:银河麒麟V10(SP1)未激活。cpu:I5-10代;

lx_nhs的博客 3326

NRF24L01模块的5个常见问题及解决方案:从信号干扰到功耗优化

本文深入探讨NRF24L01无线模块在STM32开发中的5大常见问题及解决方案,包括通信距离优化、数据丢失排查、电源噪声抑制、SPI通信故障处理以及低功耗设计。通过代码示例和电路图分析,提供实用的优化策略,帮助开发者提升无线通信的稳定性和效率。

weixin_28256233的博客 221

Simulink与C/C++的无缝对接:自定义结构体变量导入实战指南

本文详细介绍了如何将C/C++自定义结构体导入Simulink环境,实现无缝数据对接。通过编写标准C头文件、配置MEX编译环境(如MinGW),并利用`Simulink.importExternalCTypes`函数,可将结构体转换为Simulink Bus对象,从而提升复杂系统模型的可读性、可维护性及仿真与代码生成效率。

weixin_29093017的博客 480

PCB过孔全介绍

过孔(via)是多层PCB的重要组成部分之一,钻孔的费用通常占PCB制板费用的30%到40%。简单的说来,PCB上的每一个孔都可以称之为过孔。从作用上看,过孔可以分成两类:一是用作各层间的电气连接;二是用作器件的固定或定位。如果从工艺制程上来说,这些过孔一般又分为三类,即盲孔(blind via)、埋孔(buried via)和通孔(through via)。盲孔位于印刷线路板的顶层和底层表面,具

小王的自我修行路 2349

Claude Code 100个真实案例 - 用AI搭建LangChain多工具Agent(自主搜索+查询)

本案例展示如何使用 Claude Code 搭建一个 LangChain 多工具 Agent 系统。Agent 能够自主决定调用搜索引擎、数据库查询、天气查询、计算器等工具,像人类助手一样拆解问题并逐步解决。

yueyeguzhuo的专栏 553

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: OpenCV学习之路(四) OpenCV 中的几种数据结构
下一篇: OpenCV学习之路(六) 基本图形的绘制
du_zhaohui
博客等级 码龄10年 57粉丝 48原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值