openCV图像读取和显示
文章目录
- 一、imread
- 二、namedWindow
- 三、imshow
#include <opencv2/opencv.hpp>
#include <iostream>using namespace std;
using namespace cv;int main(int argc,char** argv)
{cv::Mat img = imread("./sun.png"); //3通道 24位if (img.empty()) {std::cout << "could not load image!\n" << endl;return -1;}namedWindow("input",WINDOW_FREERATIO);imshow("input",img);std::cout << "load image!\n" << endl;//0 阻塞 1停顿一毫秒waitKey(0);destroyAllWindows();return 0;
}
运行

一、imread
imread是OpenCV图像处理库中的一个函数,用于从文件中读取图像数据并将其存储为一个Mat对象
cv::Mat cv::imread(const String& filename, // 文件路径int flags = IMREAD_COLOR // 图像读取标志,默认为彩色图像
);
其中,参数filename指定了要读取的图像文件的路径和文件名;参数flags指定了读取图像时的标志,它是一个可选参数,默认值为IMREAD_COLOR,表示读取彩色图像。
imread函数支持读取多种图像格式的文件,包括PNG、JPEG、BMP、GIF、TIFF等。读取的图像数据存储在一个Mat对象中,可以通过Mat对象的成员函数来访问和操作图像数据。
需要注意的是,如果指定的文件不存在或格式不正确,imread函数会返回一个空的Mat对象。因此,在调用imread函数之后,需要检查返回值是否为空,以确保图像已经正确读取。
imread函数的flags参数用于指定图像的读取方式,它是一个可选参数,如果不指定则默认为IMREAD_COLOR,即读取彩色图像。flags参数可以取以下几个值之一:
-
IMREAD_UNCHANGED:读取原始图像,包括图像的alpha通道(如果存在的话),并将其存储在Mat对象中。
-
IMREAD_GRAYSCALE:以灰度模式读取图像,将图像转换为单通道灰度图像,并将其存储在Mat对象中。
-
IMREAD_COLOR:读取彩色图像,将图像转换为三通道BGR格式,并将其存储在Mat对象中。
-
IMREAD_ANYDEPTH:读取图像的像素深度为16位或32位的图像,将其存储在Mat对象中。
-
IMREAD_ANYCOLOR:读取图像的颜色格式为任意格式的图像,将其存储在Mat对象中。
-
IMREAD_REDUCED_GRAYSCALE_2:以降采样的灰度模式读取图像,将图像转换为单通道灰度图像,并将其存储在Mat对象中,图像大小减半。
-
IMREAD_REDUCED_GRAYSCALE_4:以降采样的灰度模式读取图像,将图像转换为单通道灰度图像,并将其存储在Mat对象中,图像大小缩小为原来的四分之一。
-
IMREAD_REDUCED_GRAYSCALE_8:以降采样的灰度模式读取图像,将图像转换为单通道灰度图像,并将其存储在Mat对象中,图像大小缩小为原来的八分之一。
需要注意的是,IMREAD_ANYDEPTH和IMREAD_ANYCOLOR两个标志不能单独使用,必须与其他标志一起使用。同时,降采样的灰度模式只适用于灰度图像,对于彩色图像则无效。
二、namedWindow
namedWindow是OpenCV图像处理库中的一个函数,用于创建一个窗口对象,以便后续在该窗口中显示图像或执行其他操作。
void namedWindow(const String& winname, // 窗口名称int flags = WINDOW_AUTOSIZE // 窗口属性,默认为自适应大小
);
其中,参数winname指定了创建的窗口的名称,可以是任意字符串;参数flags指定了创建的窗口的属性,它是一个可选参数,默认值为WINDOW_AUTOSIZE,表示创建一个自适应大小的窗口,即窗口的大小会自动调整以适应要显示的图像的大小。如果将flags设置为WINDOW_FREERATIO,则创建的窗口可以手动调整大小,即可以通过鼠标拖动窗口边框来改变窗口大小,并且图像的宽高比会保持不变。
namedWindow函数的flags参数用于指定创建的窗口的属性,它是一个可选参数,如果不指定则默认为WINDOW_AUTOSIZE,即创建一个自适应大小的窗口。flags参数可以取以下几个值之一:
- WINDOW_NORMAL:创建一个手动调整大小的窗口,可以通过鼠标拖动窗口边框来改变窗口大小,并且图像的宽高比会保持不变。
- WINDOW_AUTOSIZE:创建一个自适应大小的窗口,即窗口的大小会自动调整以适应要显示的图像的大小。
- WINDOW_FREERATIO:创建一个手动调整大小的窗口,可以通过鼠标拖动窗口边框来改变窗口大小,并且图像的宽高比也可以随意改变。
需要注意的是,WINDOW_NORMAL和WINDOW_FREERATIO两个标志不能同时使用,只能选择其中一个。
三、imshow
imshow是OpenCV图像处理库中的一个函数,用于在指定的窗口中显示图像。
void imshow(const String& winname, // 窗口名称InputArray mat // 要显示的图像
);
其中,参数winname指定了要在哪个窗口中显示图像,它必须与之前使用namedWindow函数创建的窗口名称相同;参数mat是要显示的图像,它可以是Mat、UMat、MatExpr等类型的对象。
推荐一个零声学院免费教程,个人觉得老师讲得不错,
分享给大家:
C++初级课程链接:
https://ke.qq.com/course/444655?flowToken=1043280
Qt课程链接:
https://ke.qq.com/course/444655?flowToken=1044614
相关文章:
openCV图像读取和显示
文章目录 一、imread二、namedWindow三、imshow #include <opencv2/opencv.hpp> #include <iostream>using namespace std; using namespace cv;int main(int argc,char** argv) {cv::Mat img imread("./sun.png"); //3通道 24位if (img.empty()) {std:…...
requests 方法总结
当使用 requests 库进行接口自动化测试时,以下是一些详细的步骤和方法总结: 1. **安装 requests 库**:首先,确保你已经安装了 requests 库。可以使用 pip 命令进行安装:pip install requests。 2. **导入库**&#x…...
Go语言删除文本文件中的指定行
GO语言删除文本文件中的指定行 1. 思路2. 处理文件3. 处理后的文本文件 1. 思路 假设现在有一个文本文件,我们需要删除文件中乱码的行。我们可以使用go的os库来处理文件,遍历整个文件然后将除过乱码的行写入一个新文件,以此来实现我们的需求…...
Arthas GC日志-JVM(十八)
上篇文章说jvm的实际运行情况。 Jvm实际运行情况-JVM(十七) Arthas介绍 因为arthas完全是java代码写的,我们直接用命令启动: Java -jar arthas-boot.jar 启动成功后,选择我们项目的进程。 进入我们可用dashboard…...
ISC 2023︱诚邀您参与赛宁“安全验证评估”论坛
8月9日-10日,第十一届互联网安全大会(简称ISC 2023)将在北京国家会议中心举办。本次大会以“安全即服务,开启人工智能时代数字安全新范式”为主题,打造全球首场AI数字安全峰会,赋予安全即服务新时代内涵…...
分享一个计算器
先看效果: 再看代码(查看更多): <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计算器</title><style>* {box-sizing: border-box;}body…...
Android 13 Launcher——长按图标弹窗背景变暗
目录 一.背景 二.修改代码 一.背景 客户定制需要长按图标弹窗让其背景变暗,所以需要进行定制,如下是定制流程,本篇是接上篇https://gonglipeng.blog.csdn.net/article/details/132171100 的内容 二.修改代码 主要代码逻辑在ArrowPopup中的reorderAndShow方法和closeCom…...
Elasticsearch概述和DSL查询总结
目录 Elasticsearch概述 1. 什么是Elasticsearch 2. 作用 3. 特点 DSL(Domain Specifit Language)特定领域语言: 概念和作用 查询代码总结 最后附项目准备 1.创建搜索工程(maven工程) 2.配置文件 application…...
扩展卡尔曼滤波器代码
文章目录 前言问题状态向量和观测向量加性噪声的形式状态方程及求导观测方程及求导状态初始化过程噪声和观测噪声卡尔曼滤波过程code 前言 卡尔曼滤波器在1960年被卡尔曼发明之后,被广泛应用在动态系统预测。在自动驾驶、机器人、AR领域等应用广泛。卡尔曼滤波器使…...
9:00开始面试,9:08就出来了,这问题问的实在是····
外包工作3年,今年裸辞跳槽,很幸运的是找到了下家,不过 自从加入到这家公司,每天不是在加班就是在加班的路上,薪资倒是给的不少,所以我也就忍了。没想到6月一纸通知,所有人都不许加班࿰…...
揭秘:5个美国程序员与日本程序员的差异
大家好,这里是程序员晚枫。想了解更多精彩内容,快来关注程序员晚枫 今天以美国和日本程序员为例,给大家分享一下国外程序员的生活。 以下是五个美国程序员和日本程序员的的区别: 工作方式:美国程序员通常更注重自由和…...
Springboot实现简单JWT登录鉴权
登录为啥需要鉴权? 登录需要鉴权是为了保护系统的安全性和用户的隐私。在一个 Web 应用中,用户需要提供一定的身份信息(例如用户名和密码)进行登录,登录后系统会为用户生成一个身份令牌(例如 JWT Token&am…...
C++设计模式创建型之工厂模式整理
一、工厂模式分类 工厂模式属于创建型模式,一般可以细分为简单工厂模式、工厂模式和抽象工厂模式。每种都有不同的特色和应用场景。 二、工厂模式详情 1、简单工厂模式 1)概述 简单工厂模式相对来说,在四人组写的《设计模式------可复用面…...
前端安全XSS和CSRF讲解
文章目录 XSSXSS攻击原理常见的攻击方式预防措施 CSRFCSRF攻击原理常见攻击情景预防措施: CSRF和XSS的区别 XSS 全称Cross Site Scripting,名为跨站脚本攻击。为啥不是单词第一个字母组合CSS,大概率与样式名称css进行区分。 XSS攻击原理 不…...
本地化部署自建类ChatGPT服务远程访问
本地化部署自建类ChatGPT服务远程访问 文章目录 本地化部署自建类ChatGPT服务远程访问前言系统环境1. 安装Text generation web UI2.安装依赖3. 安装语言模型4. 启动5. 安装cpolar 内网穿透6. 创建公网地址7. 公网访问8. 固定公网地址 🍀小结🍀 前言 Te…...
一、Webpack相关(包括webpack-dev-server用以热更新和html-webpack-plugin)
概念与功能: webpack是前端项目工程化的具体解决方案。它提供了友好的前端模块化开发支持,以及代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等强大的功能。 快速上手:隔行变色 -S实际是--save的简写,表示安装的第三方…...
安全防御(3)
1.总结当堂NAT与双机热备原理,形成思维导图 2.完成课堂nat与双机热备试验 引用IDS是指入侵检测系统,它可以在网络中检测和防御入侵行为。IDS的签名是指根据已知入侵行为的特征制定的规则,用于检测和警告可能存在的入侵行为。签名过滤器可以根…...
AR远程专家指导在汽车改装上的应用有哪些?
随着科技的不断发展,AR增强现实技术逐渐走进了我们的生活。加上商贸国际化,远程协同纵深到制造生产的更多环节,研发协同、工艺优化等场景复杂、跨层级、需要频繁沟通确认的流程正通过AR应用实现全面远程化的过渡,在汽车行业&#…...
css-3:什么是响应式设计?响应式的原理是什么?如何做?
1、响应式设计是什么? 响应式网站设计(Responsive WEB desgin)是一个网络页面设计布局,页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的相应和调整。 描述响应式…...
Armstrong数,n位数等于其各位数的n次方之和。
//Armstrong数具有以下特征:一个n位数等于其各位数的n次方之和。 //例如:1531^35^33^3 16341^46^43^44^4 #include<stdio.h> #include<math.h> //实在不知道的暴力求解方法 int main() {//Armstrong数具有以下特征:一个…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
CMS内容管理系统的设计与实现:多站点模式的实现
在一套内容管理系统中,其实有很多站点,比如企业门户网站,产品手册,知识帮助手册等,因此会需要多个站点,甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...
Easy Excel
Easy Excel 一、依赖引入二、基本使用1. 定义实体类(导入/导出共用)2. 写 Excel3. 读 Excel 三、常用注解说明(完整列表)四、进阶:自定义转换器(Converter) 其它自定义转换器没生效 Easy Excel在…...
