极简opencv操作xml文件

目标

修改xml文件,先产生一个临时文件,拷贝,修改,改名,使用opencv 非常简单地就可以搞定配置xml文件

code

c 复制代码
#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/core/utils/filesystem.hpp> // 需要包含此头文件以使用cv::utils::fs::copy_file

using namespace cv;
using namespace std;

int main() {
    // 创建FileStorage对象用于读操作
    FileStorage fs_read("example.xml", FileStorage::READ);

    if (!fs_read.isOpened()) {
        cout << "无法打开文件!" << endl;
        return -1;
    }

    // 读取并存储所有数据到内存中
    FileStorage fs_temp("temp.xml", FileStorage::WRITE); // 创建一个临时文件来保存修改后的数据
    fs_read.copyTo(fs_temp); // 复制原始文件内容到临时文件
    fs_temp.release(); // 释放临时文件的写入对象
    fs_read.release(); // 释放原文件的读取对象

    // 打开临时文件进行修改
    fs_temp.open("temp.xml", FileStorage::UPDATE);
    if (!fs_temp.isOpened()) {
        cout << "无法打开临时文件进行修改!" << endl;
        return -1;
    }

    // 修改特定数据项,例如增加frameCount
    int frameCount;
    fs_temp["frameCount"] >> frameCount;
    fs_temp << "frameCount" << (frameCount + 10); // 假设我们要将frameCount增加10

    fs_temp.release(); // 关闭临时文件

    // 替换原文件
    if (cv::utils::fs::exists("example.xml")) {
        cv::utils::fs::remove("example.xml"); // 删除原文件
    }
    cv::utils::fs::copy_file("temp.xml", "example.xml"); // 将临时文件复制回原文件名
    cv::utils::fs::remove("temp.xml"); // 删除临时文件

    cout << "frameCount已更新并保存至原文件example.xml" << endl;

    return 0;
}
相关推荐
企业数字化笔记14 小时前
视频像素分割怎么选?HSV 阈值、传统掩膜、语义分割和实例分割的效果与代价
opencv·音视频
richard_yuu2 天前
OpenCV 实战第 2 篇:cv::Mat 内存模型,引用计数、ROI 与连续性
人工智能·opencv·计算机视觉
泡海椒3 天前
JQuick-Excel JQuickRow 数据准备实战:JObjectConverter、JQuickRow.toRows 与 XML 导出链路
xml·windows·excel
xailorliu3 天前
SLIC_超像素算法
c++·opencv·目标检测·机器学习·计算机视觉
企业数字化笔记4 天前
视觉智能体怎么选技术?目标检测、跟踪、分割、OpenCV和FFmpeg的职责划分
opencv·目标检测·ffmpeg
xailorliu5 天前
矩阵定性-正定负定不定半正定半负定
c++·opencv·线性代数·计算机视觉·矩阵
泡海椒5 天前
JQuick-Excel 字段映射实战:用 MAPPING 固化 Excel 表头与业务字段契约
xml·java·开发语言·excel
泡干脆面就番茄5 天前
MediaPipe人体感知全指南
opencv
欧特克_Glodon7 天前
OpenCV计算机视觉开发入门与实践(基于C++):专栏内容介绍及目录
c++·人工智能·opencv·计算机视觉
sali-tec7 天前
C# 基于OpenCv的视觉工作流-章110-YOLO 实例分割
图像处理·人工智能·opencv·算法·yolo·计算机视觉