2.8销毁窗口

目录

1.实验原理

2.实验代码

3.运行结果


1.实验原理

销毁某一个指定名称的窗口 destoryWindow

函数原型

Destroys a window.

void destroyWindow(const string& winname);

含义
功能: 销毁指定名称的窗口。
参数:
const string& winname: 一个字符串,表示要销毁的窗口的名称。这是用于标识窗口的唯一名称。
返回值:
该函数没有返回值,其类型为 void。
行为
查找与 winname 参数匹配的窗口。
销毁找到的窗口,包括释放与该窗口相关的所有资源。

销毁所有新建的窗口 destoryAllWindows

函数原型

Destroys all of the HighGUI windows.

void destroyAllWindows();

含义
功能: 销毁所有由 OpenCV 创建的 HighGUI 窗口。
参数:
无参数。
返回值:
该函数没有返回值,其类型为 void。
行为
销毁所有当前打开的 HighGUI 窗口,包括释放与这些窗口相关的所有资源。

sprintf_s函数

在C++中,sprintf_s 是一个用于格式化字符串的函数,通常用于将数据转换成字符串形式。这段代码使用的是微软的安全版本 sprintf_s,它是在标准 sprintf 函数的基础上增加了安全特性,以防止缓冲区溢出。

这段代码的具体含义如下:

szName:这是一个字符数组(通常是 char 类型),用来存放格式化后的字符串。
%d.jpg:这是格式化字符串,其中 %d 是一个占位符,表示这里将被一个整数所替换;.jpg 则是字符串的一部分,会被直接添加到结果中。
i+1:这是一个表达式,计算得到的整数值将会被插入到 %d 的位置上。
整体来看,这行代码的功能是将整数 i+1 转换为字符串,并且追加 .jpg 后缀,最终结果存储在 szName 中。例如,如果 i 的值为 5,则最终 szName 的内容会是 "6.jpg"。

2.实验代码

// test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <opencv2/highgui/highgui_c.h>
#include <opencv2\opencv.hpp>
//#pragma comment(lib, "opencv_world450d.lib")  //引用引入库 
using namespace cv;
#include<iostream>
using namespace std;

int main()
{
	//图像源输入
	vector<Mat>srcImage(5);
	char szName[50] = "";
	for (int i = 0; i < srcImage.size(); i++) 
	{
		sprintf_s(szName, "%d.jpg", i+1);

		srcImage[i] = imread(szName);
		if (srcImage[i].empty())
        { //判断当前vector读入的正确性	
			cout << "read "<< szName<<" error" << endl;
			return -1;
		}
		//调用 单窗口显示图像
		namedWindow(szName, WINDOW_AUTOSIZE);
		imshow(szName, srcImage[i]);//在“窗口1”这个窗口输出图片。
		waitKey(5000);//等待5秒,程序自动退出。改为0,不自动退出。
		destroyWindow(szName);
	}
	//destroyAllWindows();
	cout << "所有的窗口已经销毁了" << endl;
	waitKey(0);
	system("pause");
	return 0;
}

3.运行结果

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值