OpenCV高级图形用户界面(7)获取指定窗口的属性值函数getWindowProperty()的使用

embedded/2024/10/19 6:33:37/
  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

提供窗口的参数。

函数 getWindowProperty 返回窗口的属性。
cv::getWindowProperty() 函数用于获取指定窗口的属性值。这个函数允许你查询窗口的各种属性,如窗口的大小、位置或其他特定的属性。

函数的原型

double cv::getWindowProperty
(const String & 	winname,int 	prop_id 
)	

参数

  • 参数winname 窗口的名称。
  • 参数prop_id 要检索的窗口属性。以下操作标志可用:(cv::WindowPropertyFlags)

prop_id 参数可以是以下常量之一:

  • cv::WND_PROP_AUTOSIZE:窗口是否自动调整大小。
  • cv::WND_PROP_ASPECT_RATIO:窗口的纵横比。
  • cv::WND_PROP_FULLSCREEN:窗口是否处于全屏模式。
  • cv::WND_PROP_OPENGL:窗口是否使用 OpenGL 渲染。
  • cv::WND_PROP_VISIBLE:窗口是否可见。

代码示例

#include <opencv2/opencv.hpp>
#include <iostream>int main() {// 加载图像cv::Mat img = cv::imread("example.jpg", cv::IMREAD_COLOR);if (img.empty()) {std::cerr << "Error: Image not found!" << std::endl;return -1;}// 创建窗口std::string winname = "Example Window";cv::namedWindow(winname);// 显示图像cv::imshow(winname, img);// 获取窗口是否自动调整大小的属性double propAutosize = cv::getWindowProperty(winname, cv::WND_PROP_AUTOSIZE);std::cout << "Window autosize property: " << propAutosize << std::endl;// 获取窗口是否处于全屏模式的属性double propFullscreen = cv::getWindowProperty(winname, cv::WND_PROP_FULLSCREEN);std::cout << "Window fullscreen property: " << propFullscreen << std::endl;// 获取窗口是否使用 OpenGL 渲染的属性double propOpenGL = cv::getWindowProperty(winname, cv::WND_PROP_OPENGL);std::cout << "Window OpenGL property: " << propOpenGL << std::endl;// 获取窗口的可见性属性double propVisible = cv::getWindowProperty(winname, cv::WND_PROP_VISIBLE);std::cout << "Window visible property: " << propVisible << std::endl;// 等待键盘输入cv::waitKey(0);// 关闭所有窗口cv::destroyAllWindows();return 0;
}

运行结果

Window autosize property: 1
Window fullscreen property: 0
Window OpenGL property: -1
Window visible property: -1

http://www.ppmy.cn/embedded/128674.html

相关文章

Oracle数据库系统表空间过大,清理SYSTEM、SYSAUX表空间

一.前言 在oracle数据库中&#xff0c;system为系统表空间&#xff0c;存放着一些我们经常用到的系统表和视图&#xff0c;sysaux为辅助表空间&#xff0c;辅助着系统表空间。这两个表空间不宜添加数据文件&#xff0c;会使系统表空间过于臃肿&#xff0c;从而影响数据库的使用…

机器学习学习笔记-20241018

继续跟着小土堆去学习机器学习 文章目录 Flatten1. Flatten 的作用2. 何时使用 Flatten3. PyTorch 中的 Flatten Sequentia优化器模型的保存与加载模型的完整训练 Flatten 在神经网络中&#xff0c;Flatten 操作是将高维的输入&#xff08;如二维图像或三维特征图&#xff09…

如何使用Java模拟SQL解析器

SQL 命令的解析过程主要包括四个步骤&#xff1a;词法分析&#xff08;Lexical Analysis&#xff09;、语法分析&#xff08;Syntax Analysis&#xff09;、语义分析&#xff08;Semantic Analysis&#xff09;以及执行计划生成。这些步骤从接收到 SQL 查询开始&#xff0c;最终…

【计算机网络原理】GBN,SR,TCP区别以及案例介绍

概念介绍 GBN、SR和TCP协议的主要区别在于它们的重传机制、确认方式以及缓存机制的不同。‌ GBN&#xff08;Go-Back-N&#xff09;协议在数据传输中&#xff0c;如果某个报文段没有被正确接收&#xff0c;那么从这个报文段到后面的所有报文段都需要重新发送。GBN采用累计应答…

Electron-(二)桌面应用的启动动画创建

一、概述 在很多桌面应用中都会有启动画面的显示。启动画面可以解决在启动时耗时较长&#xff0c;将每一步反馈给用户。另外一方面解决启动过程中的环境检查及检查结果的反馈。 在当今的桌面应用领域&#xff0c;启动动画已成为提升用户体验的重要组成部分。它不仅仅是一个简单…

使用LSPatch+PlusNE修改手机软件

一、问题概述 国内使用一些软件&#xff0c;即使科学上网&#xff0c;打开都是网络错误&#xff0c;更换节点同样如此。 二、软件下载 通过官网或者正规商店(如Google play)下载并且安装。 是的&#xff0c;先要下载一个无法使用的版本&#xff0c;后续对其进行修改。 三、下…

基于深度学习的进化神经网络设计

基于深度学习的进化神经网络设计&#xff08;Evolutionary Neural Networks, ENNs&#xff09;结合了进化算法&#xff08;EA&#xff09;和神经网络&#xff08;NN&#xff09;的优点&#xff0c;用于自动化神经网络架构的设计和优化。通过模拟自然进化的选择、变异、交叉等过…

Scala入门基础(12)抽象类

抽象类&#xff0c;制定标准&#xff0c;不要求去具体实现 包含了抽象方法的类就是抽象类。抽象方法只是有方法名&#xff0c;没有具体方法体的方法 定义抽象类要用abstract&#xff08;抽象&#xff09;关键字 用智能驾驶技术举例&#xff1a;演示&#xff09…