注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

慵懒的乌龟

——若有,且珍惜~

 
 
 

日志

 
 

cvSaveImage——以系统时间为名保存图片  

2012-05-25 11:37:40|  分类: opencv 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近做的项目,想差别化保存图片,因此想到可以用系统时间为名来保存。
编出来后,发现不能保存,这点很是纳闷,按照当时的思路记录如下:
1)是不是cvSaveImage需要给一个等待时间来保存?因为如果图片保留太快可能导致系统来不及反应,图片没法正常保存。
因此在cvSaveimage后面加了个cvWaitKye(30);
cvSaveimage(char *imagename,image);
cvWaitKye(30);
结果:无效!这可以解决一部分原因,但是不是我的原因。

2)检查调试了很久,还是未能就解决,无奈之下想到了是不是保存路径有问题?我写了个获得当前路径的函数:
CString C******Dlg::FindFilePath()
{
char* pDir = new char[100];
CString strRecordDir = "record_picture";//保存图片的最终文件夹
int len = GetCurrentDirectory(100, pDir);
if( len > 100 )
{
delete pDir;
pDir = new char[len+1];
GetCurrentDirectory(len+1, pDir);
}
CString strNewRecordDir = "";
strNewRecordDir = pDir;
delete pDir;
if(strNewRecordDir[ strRecordDir.GetLength()-1 ] != '\\')
{
strNewRecordDir += "\\";
}
strNewRecordDir += strRecordDir;
strNewRecordDir += "\\";
return strNewRecordDir;
}
一系列检查后,发现路径没有问题。

3)从文件名下手,想起Windows要求文件名中不能包含 \  /  : *  ?  <  >  |  这些字符!我的原因正在于此!!!
且看下面一段程序:
time_t t=time(NULL);  //获取当前系统的日历时间
 tm *local=localtime(&t); 
char time_name[30]; 
sprintf(time_name,"%d/%d/%d %d:%d:%d",\
 local->tm_year+1900,local->tm_mon+1,\
 local->tm_mday,local->tm_hour,local->tm_min,local->tm_sec); 
cvSaveImage( (LPCTSTR)time_name,m_snap);
其中:
sprintf(time_name,"%d/%d/%d %d:%d:%d",\
 local->tm_year+1900,local->tm_mon+1,\
 local->tm_mday,local->tm_hour,local->tm_min,local->tm_sec); 

得到的 文件名 time_name 中包含了“/ ”和“ :” 等符号。

因此无法保存!!!将其更改为:
sprintf(time_name,"%d.%d.%d.. %d.%d.%d",\
 local->tm_year+1900,local->tm_mon+1,\
 local->tm_mday,local->tm_hour,local->tm_min,local->tm_sec); 

终于保存成功!至于sprintf语句内的tm_year是如何来的,请参照我的另一篇博文:


  评论这张
 
阅读(2218)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017