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 没有初始化,也没有分配内存 是一个野指针,不能直接使用

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

报告相同问题?

悬赏问题

  • ¥20 fluent无法启动
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。