OpenCV学习笔记:使用数据持久化保存与加载滑动条的值

一、概念

数据持久化:程序中对象和变量的值可以被记录(序列化)到磁盘上。

二、步骤

1.数据的步骤
(1)调用构造函数FileStorage,使用FileStorage::WRITE值传递一个文件名称和一个标志,数据格式则是由文件扩展名(即.xml、.yml或.yaml)定义的;
(2)使用运算符<<将数据写入文件,数据通常被写为字符串值对;
(3)使用Release方法关闭文件。

2.读取数据的步骤
(1)调用构造函数FileStorage,使用FileStorage::READ值传递一个文件名和一个以后个标志;
(2)使用运算符[]或>>从文件中读取数据;
(3)使用Release方法关闭文件。

三、代码实现

#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

Mat img1;

void tb1_Callback(int value, void *)
{
	Mat temp = img1 + value;
	imshow("main_win",temp);
}


int main()
{
	img1 = imread("C:\\Users\\86151\\Pictures\\Camera Roll\\全智贤3.jpg",IMREAD_GRAYSCALE);

	if (img1.empty())
	{
		cout << "Cannot load image!" << endl;
		return -1;
	}

	int tb1_value = 0;

	//加载滑动条的值
	FileStorage fsl("config.xml", FileStorage::READ);
	tb1_value = fsl["tb1_value"];   //读取数据tb1_value的方法1
	fsl["tb1_value"] >> tb1_value;
	fsl.release();

	//创建滑动条
	cvNamedWindow("main_win");
	createTrackbar("brightness", "main_win", &tb1_value, 255, tb1_Callback);
	tb1_Callback(tb1_value,NULL);

	waitKey();


	//退出时保存滑动条的值

	FileStorage fs2("config.xml",FileStorage::WRITE);
	fs2 << "tb1_value" << tb1_value;
	fs2.release();

	return 0;
}

四、结果展示

End & Enjoy!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉闫小亘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值