嵌入式移植opencv后load无法加载.xml文件,但也没有错误提示,

可能的原因是什么?有哪位大神遇到过类似的问题吗?有什么解决的思路?谢谢啦... 可能的原因是什么?有哪位大神遇到过类似的问题吗?有什么解决的思路?谢谢啦 展开
 我来答
DoramiHe
2018-04-28 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59543
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部

1、OPENCV在进行嵌入式移植后需要读取XML文件。

一开始利用最常用程序读取:

[plain] view plain copy

  • cv::FileStorage fs(xml_filename, cv::FileStorage::READ);  

  • if ( !fs.isOpened() )  

  • {  

  • }  

  • fs["QMatrix"] >> m_Calib_Mat_Q;  

  • fs["remapX1"] >> m_Calib_Mat_Remap_X_L;  

  • fs["remapY1"] >> m_Calib_Mat_Remap_Y_L;  

  • fs["remapX2"] >> m_Calib_Mat_Remap_X_R;  

  • fs["remapY2"] >> m_Calib_Mat_Remap_Y_R;  



  • [cpp] view plain copy

  • </pre><span style="font-size:14px;">出错无法读取。</span><p></p><p><span style="font-size:14px;">经过一系列过程换为:</span></p><p><span style="font-size:14px;"></span></p><pre name="code" class="plain">CvMat *readbyname,*m_Calib_Mat_Remap_X_L1,*m_Calib_Mat_Remap_Y_L1,*m_Calib_Mat_Remap_X_R1,*m_Calib_Mat_Remap_Y_R1;    

  • CvFileNode *mat_node;//文件结点       

  • CvFileStorage *fs_read=NULL;//文件存储    

  • fprintf(stderr, "1115");  

  • fs_read=cvOpenFileStorage("matX1.xml",0,CV_STORAGE_READ);      

  • readbyname = (CvMat *)cvReadByName(fs_read,NULL,"matX1",NULL);      

  • mat_node = cvGetFileNodeByName(fs_read,NULL,"matX1");      

  • m_Calib_Mat_Remap_X_L1 = (CvMat *)cvRead(fs_read,mat_node);   

  • cvReleaseFileStorage(&fs_read);      

  • cvReleaseMat(&m_Calib_Mat_Remap_X_L1);      

  • cvReleaseMat(&m_Calib_Mat_Remap_Y_L1);    

  • cvReleaseMat(&m_Calib_Mat_Remap_X_R1);   

  • cvReleaseMat(&m_Calib_Mat_Remap_Y_R1);    

  • cvReleaseMat(&readbyname);      



  • 可以成功读取。
  • 过程中,一开始出错可能是XML内容本身有问题,造成无法读取,可以将所要的数据分开多个XML数据,分开读取,这样可以避免多个数据的读取错误。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式