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

news/2024/10/18 21:16:32/
  • 操作系统: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/news/1540091.html

相关文章

【学习笔记】什么是MongoDB

文章目录 MongoDB 简介体系结构数据模型MongoDB 的特点 MongoDB 简介 学习一个东西就跟认识一个人一样&#xff0c;下面有情MongoDB来做个自我介绍 大家好&#xff0c;俺是MongoDB&#xff0c;是一个开源、高性能、无模式的文档型数据库&#xff0c;当初的设计俺就是用于简化开…

JS逆向应该学习哪些基础知识?

JS逆向工程中&#xff0c;需要掌握的基础知识领域如下&#xff1a; ‌JavaScript基础‌&#xff1a; 变量、数据类型、运算符和表达式控制流语句&#xff08;如if-else、循环等&#xff09;函数和闭包对象和数组异步编程&#xff08;Promises、async/await&#xff09;DOM操作和…

基于python的网络爬虫实现代码

以下是一个基于Python的简单网络爬虫实现示例&#xff0c;以爬取豆瓣电影Top250的电影名称和评分为例&#xff1a; 安装必要的库 我们需要安装requests库用于发送HTTP请求获取网页内容&#xff0c;BeautifulSoup库用于解析HTML页面。可以使用pip install requests beautifulsou…

Spring Boot构建高效医疗病历B2B交互平台

第3章 需求分析与可行性分析 3.1 需求分析 伴随着信息行业的蓬勃发展和人们办公自动化意识的增强&#xff0c;学习信息管理部门的工作也越来越繁重&#xff0c;原来的基于B2B平台的医疗病历交互系统已经不能完全满足相关人员使用的需要。为了协助信息开展学习信息管理工作&…

九盾叉车高位显示器:重塑叉车视界,引领高位精准

在繁忙的物流与仓储中&#xff0c;叉车不仅是力量与效率的化身&#xff0c;更是精准与安全的守护者。九盾安防&#xff0c;以科技之名&#xff0c;打造叉车高位显示器&#xff0c;彻底革新了货叉升降的盲区挑战&#xff0c;为物流、仓储及码头等领域带来了前所未有的作业体验。…

中级注册安全工程师《安全生产法律法规》真题及详解

2022年中级注册安全工程师《安全生产法律法规》真题及详解 一、单项选择题 &#xff08;共70题&#xff0c;每题1分。每题的备选项中&#xff0c;只有1个最符合题意&#xff09; 1. 法律的制定主体不同&#xff0c;其法律地位和法律效力也不同。关于法律地位和效力的说法&…

提升SQL技能,掌握数据分析

提升SQL技能&#xff0c;掌握数据分析 在今天这个数据驱动的世界&#xff0c;掌握SQL&#xff08;结构化查询语言&#xff09;不仅是一项技术能力&#xff0c;更是一种职业竞争力。想象一下&#xff0c;如果你能像魔法师一样轻松从庞大且复杂的数据集中提取出有用的信息&#…

嵌入式硬件设计详解

嵌入式硬件设计详解 嵌入式硬件设计是一个复杂而精细的过程&#xff0c;它涉及将微控制器&#xff08;MCU&#xff09;、微处理器&#xff08;MPU&#xff09;或数字信号处理器&#xff08;DSP&#xff09;等核心芯片与其他外围电子元件&#xff08;如传感器、执行器、存储器、…