ZhtSunday 2016-07-09 07:22 采纳率: 100%
浏览 1819
已采纳

存储图片 使用sprintf函数修改存储路径时出错

我使用opencv处理图像,把一个图中的数字识别并且分别复制了出来。想要把这些图分别存储起来。每次存储的时候文件名都要改变,所以我想用sprintf写每一次存储的路径(文中加粗的部分)。运行的时候发现会被中断,但是如果把 ** sprintf(SavePath,"C:\picture\img%d.jpg",num);**改成**sprintf(SavePath,"C:\%d.jpg",num);**这样短一些,就运行正常。
有没有高手可以给我解答一下?我是一个小菜鸟
int num=0;//第num部分图像
char NameNo; //第num部分图像窗口名
char *SavePath;
for(; Outlineseq!=NULL;Outlineseq=Outlineseq->h_next)
{
CvRect RectBound=cvBoundingRect(Outlineseq,0);
cvRectangle(BinaryImage,cvPoint(RectBound.x, RectBound.y), cvPoint(RectBound.x+RectBound.width, RectBound.y+RectBound.height), CV_RGB(255,255,255),0);
//分割图像
IplImage *ImgNo=cvCreateImage(cvSize(RectBound.width,RectBound.height),IPL_DEPTH_8U,1);
cvSetImageROI(BinaryImage,RectBound);
cvCopy(BinaryImage,ImgNo);
cvResetImageROI(BinaryImage);
sprintf(NameNo,"No.%d",++num);
cvNamedWindow(NameNo,CV_WINDOW_AUTOSIZE);
cvShowImage(NameNo,ImgNo);
//保存文件路径
*
sprintf(SavePath,"C:\picture\img%d.jpg",num);**
//printf("%s",SavePath);
//cvSaveImage(SavePath,ImgNo);
cvReleaseImage(&ImgNo);
}

  • 写回答

1条回答 默认 最新

  • jamon_tan 2016-07-09 07:58
    关注

    SavePath 没有初始化,也没有分配内存 是一个野指针,不能直接使用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB代码补全插值
  • ¥15 Typegoose 中如何使用 arrayFilters 筛选并更新深度嵌套的子文档数组信息
  • ¥15 前后端分离的学习疑问?
  • ¥15 stata实证代码答疑
  • ¥50 husky+jaco2实现在gazebo与rviz中联合仿真
  • ¥15 dpabi预处理报错:Error using y_ExtractROISignal (line 251)
  • ¥15 在虚拟机中配置flume,无法将slave1节点的文件采集到master节点中
  • ¥15 husky+kinova jaco2 仿真
  • ¥15 zigbee终端设备入网失败
  • ¥15 金融监管系统怎么对7+4机构进行监管的