opencv 学习笔记2—XML读写操作
- 将图像写入xml:
“`
int main()
{
CString Filename = “Std”;//名字不可取数字
WriteImage2Xml(processphoto,Filename);
}
void WriteImage2Xml(IplImage*Img , CString FileName)//将图像写入XML;FileName不可为数字;
{
if (Img==NULL)
{
MessageBox(0,”Write XML ERROR!!”,0,0);
return;
}
CvFileStorage* fs =
cvOpenFileStorage(GetModulePath()+FileName+”.xml”, 0,
CV_STORAGE_WRITE);
cvWrite(fs, FileName, Img);
cvReleaseFileStorage(&fs);
}
2. 从XML中读出图像:
void WriteXml2Image(IplImage*Img , CString FileName)//将图像从XML中读出;
{
CvFileStorage* fs = cvOpenFileStorage(GetModulePath()+FileName+".xml", 0, CV_STORAGE_READ);
CvFileNode* fn = cvGetFileNodeByName(fs,0,FileName); //先读取父元素(标签,节点)
int width = cvReadIntByName(fs,fn,"width"); //通过父元素读取子元素
int height = cvReadIntByName(fs,fn,"height");
CString A = cvReadStringByName(fs,fn,"dt");
CvMat *M1 = (CvMat *)cvRead( fs, cvGetFileNodeByName(fs, NULL, FileName));
//Img = cvCreateImage(cvSize(width,height),8,3);
//Img = cvGetImage(M1, cvCreateImageHeader(cvSize(width,height),8,3));
cvConvert(M1,Img);//将矩阵复制到图像中;
cvReleaseFileStorage(&fs);
}
“`