将数据保存到opencv中的文件

将数据保存到opencv中的文件,opencv,Opencv,我需要将连接组件的区域保存为文本文件,我已经编写了如下代码,但我不知道哪里出了问题。有人能帮我找出这个问题吗 imagefet=cvCreateImage(cvGetSize(lab),IPL_DEPTH_8U,3); CvMemStorage* contour_storage = cvCreateMemStorage(0); CvSeq* contours; CvFont font; cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.6f, 0.

我需要将连接组件的区域保存为文本文件,我已经编写了如下代码,但我不知道哪里出了问题。有人能帮我找出这个问题吗

imagefet=cvCreateImage(cvGetSize(lab),IPL_DEPTH_8U,3);
CvMemStorage* contour_storage = cvCreateMemStorage(0);
CvSeq* contours;
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.6f, 0.6f, 0, 2);
cvFindContours(lab, contour_storage, &contours, sizeof (CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));
cvZero(imagefet);

FILE *file=fopen("mytxt.txt","W");
for( int ncount=1; contours != NULL; contours = contours->h_next, ncount++)
 {
    CvScalar color =  CV_RGB( rand()&255, rand()&255, rand()&255 );
    cvDrawContours( imagefet, contours, color, CV_RGB(255,255,255), -1, CV_FILLED, 8 ,cvPoint(0,0));        
    int area = abs(cvContourArea(contours, CV_WHOLE_SEQ));      
    fprintf(file,"%d",area);        
  }
fclose(file);

thnx

您对错误的描述不是很具体

如果您的文件未打开,我建议您使用小写的
w
作为模式标志。我从未见过使用大写字母,我不知道这是否被允许

如果你的文件充满了没有空格的数字,那是因为你没有写出任何空格。尝试将换行符
\n
添加到
fprintf
调用:

fprintf(file,"%d\n",area);        
在这方面,您应该真正使用文本模式来创建文件
“wt”
,而不是
“w”


您应该做的另一件事是,在调用
fopen
后,通过检查
file
是否为NULL来测试文件是否成功打开。

好吧,您还没有说有什么问题。我需要在文本文件中像“1.area=,2.area=3.area=”这样打印。我该怎么做呢?我解决了这个问题,它正在文本中打印。现在我需要在文本文件中打印“1.area=,2.area=3.area=”。如何执行此操作?
fprintf(文件“%d.区域=%d\n”,n计数,区域)