2.4 C#开发环境 xml格式保存参数----范例实现

2.4C#开发环境 xml格式保存参数----范例实现

1 程序参数保存目录层次说明

参数保存目录层次
1 选择程序号| 相机号|窗口号
2 导入参数:就会从本地目录读取参数,并且显示图片和ROI
3 保存参数:把当前控件图片和ROI信息保存到指定程序号|相机号|窗口号中

参数保存界面

2 参数CFilter_Param 举例

/// <summary>
/// CFilter_Param
/// VisionTool param 举例说明
/// </summary>
public class CFilter_Param
{
    [XmlIgnore]
    public Mat m_register_img;
    public  BD_Vision.Region m_region;
    public  ROI_single[] m_rois;
    public CFilter_Param()
    {
        m_register_img = new Mat();
        m_region = new BD_Vision.Region();
        m_rois =  ROI_single.init(5);
    }
}

3 保存参数

保存地址信息和效果如下
在这里插入图片描述

int proNO = (int)num_programNO.Value;
int camNO = (int)num_camNO.Value;
int winNO = (int)num_winNO.Value; 
string filepath = Application.StartupPath + "\\ProgramData\\Pro_" + proNO.ToString("000") + "\\Cam_" + camNO.ToString("0") + "\\CFilter\\Win_" + winNO.ToString("000") + "\\";
string filename = "cfilter_param.xml"; 
if (!get_FileCtx().FolderExist(filepath))
    get_FileCtx().CreateFolder(filepath);
 
cfilter_param.m_rois = BD_OperateSet.ROIs_Deep_Copy(bdPictureBox1.m_ROIs);
get_FileCtx().Save_XML_File_Serialize(filepath, filename, typeof(CFilter_Param), cfilter_param);

// m_register_img  要单独读取
filename = "m_register_img.png";
BD_OperateSet.Assign_Mat(ref cfilter_param.m_register_img,ref bdPictureBox1.m_raw_mat);
if (BD_OperateSet.MatisNotNull(cfilter_param.m_register_img))
    Cv2.ImWrite(filepath + filename, cfilter_param.m_register_img);

4 读取参数

这里仅仅演示读取一个窗口的效果,如果多个相机,多个窗口,请大家思考下

int proNO = (int)num_programNO.Value;
int camNO = (int)num_camNO.Value;
int winNO = (int)num_winNO.Value;
string filepath = Application.StartupPath + "\\ProgramData\\Pro_" + proNO.ToString("000") + "\\Cam_" + camNO.ToString("0") + "\\CFilter\\Win_" + winNO.ToString("000") + "\\";
string filename = "cfilter_param.xml";
if (get_FileCtx().FileExist(filepath, filename))
{
    cfilter_param = (CFilter_Param)get_FileCtx().Read_XML_File_Deserializer(filepath, filename, typeof(CFilter_Param));
    if (cfilter_param == null)
        cfilter_param = new CFilter_Param();
}
else
{
    cfilter_param = new CFilter_Param();
}
// m_register_img  要单独读取
filename = "m_register_img.png";
BD_OperateSet.Assign_Temp(ref cfilter_param.m_register_img, Cv2.ImRead(filepath + filename, ImreadModes.Unchanged));
bdPictureBox1.Display_Mat(ref cfilter_param.m_register_img);
bdPictureBox1.InitDisp_InterActive_ROIs(cfilter_param.m_rois,new Scalar(0,255,0),1);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/768608.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

剪映数字人口播原理终于搞清楚了

剪映版本升级了,新版本支持数字人定制,于是我赶紧申请了使用资格 目前的价格是49元单个价格/30天 支付49元之后剪映要求上传2.5至10分钟的视频 接着要阅读一段话并录制视频上传 第三步提交,提交完成之后大概两三个小时就会有一个特定数字人形象出现:

不只是咨询,更是转型加速器——精益生产咨询!

以前咱们说精益生产&#xff0c;总觉得是套现成的模板&#xff0c;每家企业都得照葫芦画瓢。但现在不一样了&#xff0c;精益生产咨询就像是个高级定制师&#xff0c;它深入了解你的企业现状、行业特点、市场趋势&#xff0c;然后给你量身打造一套专属的精益转型方案。这种既接…

java内存管理机制详解之运行时数据区

正文 C与java之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”&#xff0c;墙外的人想进去&#xff0c;墙里的人却想出来…… 与C、C程序员时刻要关注着内存的分配与释放&#xff0c;会不会又有哪里出现了内存泄露不同是&#xff0c;java程序员可以“高枕无忧”。因为…

Visual Studio 中的键盘快捷方式

1. Visual Studio 中的键盘快捷方式 1.1. 可打印快捷方式备忘单 1.2. Visual Studio 的常用键盘快捷方式 本部分中的所有快捷方式都将全局应用&#xff08;除非另有指定&#xff09;。 “全局”上下文表示该快捷方式适用于 Visual Studio 中的任何工具窗口。 生成&#xff1…

【C语言】指针经典例题

题1&#xff1a; #include <stdio.h>int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&#xff1f; 解答如下&#xff1a; 题2&#xff1a; #include <std…

Access数据操作

Access Access 作为 Office的组件之一&#xff0c;在很多 Excel难以施展其能力的场所&#xff0c;也能轻松应对。同为Office组件之一的Excel具有灵活的数据处理和分析能力&#xff0c;然而&#xff0c;其能力是有局限的&#xff0c; 比如当涉及两个数据表之间的“关联”操作时&…

【分布式数据仓库Hive】HivQL的使用

目录 一、Hive的基本操作 1. 使用Hive创建数据库test 2. 检索数据库&#xff08;模糊查看&#xff09;&#xff0c;检索形如’te*’的数据库 3. 查看数据库test详情 4. 删除数据库test 5. 创建一个学生数据库Stus&#xff0c;在其中创建一个内部表Student&#xff0c;表格…

快速下载!Windows 7旗舰版系统:集成所有补丁!

微软对Windows7系统停止支持后&#xff0c;Windows7设备不再收到安全补丁程序、修补程序。尽管如此&#xff0c;许多用户仍然认为Windows7是最好用、最经典的系统。有用户就特别喜欢Windows7旗舰版系统&#xff0c;那么接下来系统之家小编为大家带来的全补丁版本的Windows7系统…

互联网应用主流框架整合之SpringCloud微服务治理

微服务架构理念 关于微服务的概念、理念及设计相关内容,并没有特别严格的边界和定义,某种意义上说,适合的就是最好的,在之前的文章中有过详细的阐述,微服务[v1.0.0][Spring生态概述]、微服务[设计与运行]、微服务[v1.0.0][服务调用]、微服务[开发生命周期]、微服务[面临的…

LLM应用:传统NLP任务

LLM出来以后&#xff0c;知乎上就出现了“传统NLP已死”的言论&#xff0c;但是传统NLP真的就被扔进历史的垃圾桶了吗&#xff1f; 其实&#xff0c;尽管LLM具有出色的通用能力&#xff0c;但仍然无法有效应对低资源领域的自然语言处理任务&#xff0c;如小语种翻译。为了更好地…

springboot+vue+mybatis前台点菜系统+PPT+论文+讲解+售后

21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐渐被人们所认识&#xff0c;科学化的管理&#xff0c;使信息存储达到…

Linux静态库的制作

Linux操作系统支持的函数库分为&#xff1a; 静态库&#xff0c;libxxx.a&#xff0c;在编译时就将库编译进可执行程序中。 优点&#xff1a;程序的运行环境中不需要外部的函数库。 缺点&#xff1a;可执行程序大 动态库&#xff0c;又称共享库&#xff0c;libxxx.so&a…

【目标检测】DINO

一、引言 论文&#xff1a; DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection 作者&#xff1a; IDEA 代码&#xff1a; DINO 注意&#xff1a; 该算法是在Deformable DETR、DAB-DETR、DN-DETR基础上的改进&#xff0c;在学习该算法前&#…

一个专为Android平台设计的高度可定制的日历库

大家好&#xff0c;今天给大家分享一个高度可定制的日历库kizitonwose/Calendar。 Calendar专为Android平台设计&#xff0c;支持RecyclerView和Compose框架。它提供了丰富的功能&#xff0c;允许开发者根据需求定制日历的外观和功能。 项目介绍 此库是开发Android应用时&…

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验14 聚合了不存在的网络导致的路由环路问题

一、实验目的 1.验证由于聚合了不存在的网络而导致静态路由的路由环路问题&#xff1b; 二、实验要求 1.使用Cisco Packet Tracer仿真平台&#xff1b; 2.观看B站湖科大教书匠仿真实验视频&#xff0c;完成对应实验。 三、实验内容 1.构建网络拓扑&#xff1b; 2.验证路由…

【最长公共前缀 动态规划】2430. 对字母串可执行的最大删除数

如果有不明白的&#xff0c;请加文末QQ群。 本文涉及知识点 最长公共前缀 动态规划 动态规划汇总 LeetCode 2430. 对字母串可执行的最大删除数 给你一个仅由小写英文字母组成的字符串 s 。在一步操作中&#xff0c;你可以&#xff1a; 删除 整个字符串 s &#xff0c;或者 …

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(一)一些样式的调整使用

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、比如下面的发起人双击后出现的界面不正常&#xff0c; 看它的样式主要是这个里面的margin-left应该太小了&#xff0c; [data-v-45b533d5] .el-tabs__content { margin-top: 50px;mar…

EE架构大跃进:特斯拉、小鹏引领舱驾融合,从域控融合走向单SoC

作者 |肖恩 编辑 |德新 智能汽车发展到今天&#xff0c;整车电气架构已经从分布式架构逐渐迈向中央集成式架构&#xff0c;传统的小控制器被集成到按功能划分的大域控里&#xff0c;下一个阶段将是跨域的融合&#xff0c;通过不同功能域的集成实现中央计算平台的最终目标。 …

Linux动态库的制作

Linux操作系统支持的函数库分为&#xff1a; 静态库&#xff0c;libxxx.a&#xff0c;在编译时就将库编译进可执行程序中。 优点&#xff1a;程序的运行环境中不需要外部的函数库。 缺点&#xff1a;可执行程序大 动态库&#xff0c;又称共享库&#xff0c;libxxx.so&#…