用opencv将xml文件(里面存的是100*100的矩阵)读入,并定义一个新的Mat类矩阵,将xml中的矩阵存入其中。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用opencv将xml文件(里面存的是100*100的矩阵)读入,并定义一个新的Mat类矩阵,将xml中的矩阵存入其中。相关的知识,希望对你有一定的参考价值。

要用openCV2或3的语言编程,本人初学,对指令的操作不熟,麻烦各路大神尽量写得详细一点。假设xml文件名为img.xml,新矩阵为 M。

#include<stdio.h>
#include<stdlib.h>
typedef struct LNode

    int data;
    struct LNode *next;
List;
void CreatList(List *&L,int n)

    int k = sizeof(List);
    List *P, *S;
    L = (List *)malloc(k);
    L->data = 1;
    P = L;
    for (int i = 2; i <= n; i++)
    
        S = (List *)malloc(k);
        S->data = i;
        P->next = S;
        P = S;
    
    P->next = L;

void Josef(List *&L, int n, int k)//递归,剩余一个数输出,否则继续执行删除操作

    List *P, *Q;
    P = L;
    for (int i = 1; i < k-1; i++)
        P = P->next;
    Q = P->next;
    P->next = Q->next;
    free(Q);
    Q = NULL;
    L = P->next;//确定起始位置
    n -= 1;
    if (n == 1)
        printf("%d", L->data);
    else
        Josef(L, n, k);

int main(void)

    int n, k;
    List *L;
    scanf("%d %d", &n, &k);
    CreatList(L, n);
    Josef(L, n, k);
    return 0;

参考技术A Mat mat=load(".xml");追问

不能用。没load这个函数呀

追答

百度一下吧,应该会有类似的加载函数。
http://blog.csdn.net/dujian996099665/article/details/8879184

追问

这个博我看过,没有用。我最后找到的解决方法是:用FileStorage 先将随意一个矩阵写入xml或txt,用记事本打开xml或txt文件,修改其中的代码,将矩阵改成自己所需的100*100的矩阵,再用FileStorage读取。100*100的矩阵手动输入肯定不现实,可以用matlab编程输出,然后复制上去。

追答

那你的100*100的数据是怎样得到的?

追问

用如下程序:(字数限制,排版只能这样了)
load img_b.mat img_B;fid=fopen('matlab_img_B.txt','wt');[m,n]=size(img_B);
for i=1:1:m for j=1:1:n fprintf(fid,'%g., ',a(i,j)); end end fclose(fid);

用如下程序:(字数限制,排版只能这样了)
load img_b.mat img_B;fid=fopen('matlab_img_B.txt','wt');[m,n]=size(img_B);
for i=1:1:m for j=1:1:n fprintf(fid,'%g., ',a(i,j)); end end fclose(fid);

向XML中写入数据

用C#操作XML:(写入)
在textarea中写入文本,带换行符的
在写入XML中时,会被直接写入,就是在XML中的数据还是换行的
用正则把文本中"\n"换成"<br>",在XML中还是换了行
方法是可以用<![CDATA["asfdasfd"]]>来解决。
但是要怎么在写入数据的时候加上<![CDATA[]>?!
还要保证<![CDATA[]>里面不能有换行
谢谢

参考技术A 向xml文件中动态的添加节点(数据)是一件很爽的事,可以给你的程序带来很多的方便,比如在web中,如果你的flash用到了xml文件,这个方法可以让你在后台就轻轻松松的更新你的flash内容哦 参考技术B 1, 把数据读入到dataset .

2 ,利用dataset 的write() 方法写入。
参考技术C XmlDocument doc = new XmlDocument();
XmlElement xe = doc.CreateElement("root");
XmlCDataSection xcs = doc.CreateCDataSection("test");

xcs.InnerText = "<aaaaa><br/>";
xe.AppendChild(xcs);
doc.AppendChild(xe);
doc.Save("c:\\aa.xml");本回答被提问者采纳
参考技术D XmlDocument
doc
=
new
XmlDocument();
XmlElement
xe
=
doc.CreateElement("root");
XmlCDataSection
xcs
=
doc.CreateCDataSection("test");
xcs.InnerText
=
"<aaaaa><br/>";
xe.
AppendChild
(xcs);
doc.AppendChild(xe);
doc.Save("c:\\aa.xml");

以上是关于用opencv将xml文件(里面存的是100*100的矩阵)读入,并定义一个新的Mat类矩阵,将xml中的矩阵存入其中。的主要内容,如果未能解决你的问题,请参考以下文章

excel表里面存的是手机号,python读取出来成了float类型,求助

用opencv定位和识别数字如何识别呢,急求~~~~~~~~~

用opencv如何将一个二值化图像反色

jdbc 读取oracle long raw 字段,里面存的是文本

ledisDB底层实现——本质上就是用leveldb这样的底层存储,和ssdb一样,meta里存的是hashlist等的元数据

请问Eclipse怎么识别xml文件