OpenCV高级图形用户界面(10)创建一个新的窗口函数namedWindow()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

创建一个窗口。

函数 namedWindow 创建一个可以作为图像和跟踪条占位符的窗口。创建的窗口通过它们的名字来引用。

如果已经存在同名的窗口,函数不做任何事情。

你可以调用 cv::destroyWindowcv::destroyAllWindows 来关闭窗口并释放任何关联的内存使用。对于一个简单的程序,实际上并不一定需要调用这些函数,因为在应用程序退出时,所有的资源和窗口都会由操作系统自动关闭。

注释

Qt 后端支持额外的标志:

  • WINDOW_NORMAL 或 WINDOW_AUTOSIZE:WINDOW_NORMAL 允许你调整窗口大小,而 WINDOW_AUTOSIZE 自动调整窗口大小以适应显示的图像(参见 imshow),并且你不能手动更改窗口大小。
  • WINDOW_FREERATIO 或 WINDOW_KEEPRATIO:WINDOW_FREERATIO 在不考虑图像比例的情况下调整图像,而 WINDOW_KEEPRATIO 保持图像的比例。
  • WINDOW_GUI_NORMAL 或 WINDOW_GUI_EXPANDED:WINDOW_GUI_NORMAL 是旧的方式绘制窗口而不带状态栏和工具栏,而 WINDOW_GUI_EXPANDED 是一种新的增强的 GUI。默认情况下,标志等于 WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED。

函数原型

cpp 复制代码
void cv::namedWindow	
(
	const String & 	winname,
	int 	flags = WINDOW_AUTOSIZE 
)	

参数

  • 参数winname 窗口标题栏中的窗口名称,可以用作窗口标识符。
  • 参数flags 窗口的标志。支持的标志有:(cv::WindowFlags)

代码示例

cpp 复制代码
#include <iostream>
#include <opencv2/opencv.hpp>

int main()
{
    // 加载图像
    cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/hawk.jpg", cv::IMREAD_COLOR );
    if ( img.empty() )
    {
        std::cerr << "Error: Image not found!" << std::endl;
        return -1;
    }

    // 创建窗口
    std::string winname = "Example Window";

    // 设置窗口属性:可调整大小、保持图像比例、增强 GUI
    int flags = cv::WINDOW_NORMAL | cv::WINDOW_KEEPRATIO | cv::WINDOW_GUI_EXPANDED;
    cv::namedWindow( winname, flags );

    // 显示图像
    cv::imshow( winname, img );

    // 等待键盘输入
    cv::waitKey( 0 );

    // 关闭所有窗口
    cv::destroyAllWindows();

    return 0;
}

运行结果

相关推荐
weixin_4684668510 分钟前
深度学习图像数据增强新手实战指南
图像处理·人工智能·深度学习·ai·数据增强·机器视觉
Swift社区11 分钟前
鸿蒙 App 集成 AI 助手:架构设计 + 实战代码
人工智能·华为·harmonyos
复利人生 复利日知录 赋能循环13 分钟前
丘孔20260606复利的认知提升
人工智能
简简单单做算法17 分钟前
基于混沌加密的遥感图像加密算法matlab仿真
图像处理·计算机视觉·matlab·混沌加密·遥感图像加密
力学与人工智能19 分钟前
AIAAJ | 西工大常宝辉、李楠等:基于径向基函数神经网络的激波串数据驱动控制方法研究
人工智能·深度学习·神经网络·数据驱动·径向基函数·激波·控制方法
keykey6.28 分钟前
卷积神经网络(CNN):让AI学会“看“
开发语言·人工智能·深度学习·机器学习
kcuwu.29 分钟前
Claw Code 项目架构万字解读
人工智能·架构
qq74223498431 分钟前
从“感知”到“决断”:测评百度伐谋产业决策智能体的端到端推理与行动机制
人工智能·算法·百度·大模型·运筹优化
暗夜猎手-大魔王34 分钟前
转载--Hermes Agent 11 | 智能审批与平台化安全:当 AI 来守护 AI
人工智能·python·安全
feiwuw35 分钟前
氛围编程是什么?以及为什么它又分出了“规划”和“严肃”模式
人工智能·氛围编程