cvLoadImage千万不要小看它!!!!路径问题!

cvLoadImage  被这个函数折腾了半天,也是自己不注意细节的问题!写在这里惊醒大家!


1.首先这个函数第一个参数为加载图片的路径,一直以为把图片放在debug文件夹中,此函数能够找得到图片,可是试了很多次之后,任然读取不到图片,因为之前印象中有过放在debug文件夹中能够读取到,结果是放在debug文件夹中,直接用图片名称做路径是加载不了图片的。

2.在上面一种情况不能加载图片后,我想到了绝对路径,然后直接复制我的电脑上面的地址,如E:\new folder\拣练系统\图片样品\cjy\01.bmp,但是发现任然加载不了图片,因为以前其他地方用路径的时候一直都是这么做的,结果试了半天还是加载不了图片,然后那个崩溃啊,一个这么小的问题竟然搞不定。。。

解决方法:

1.将图片直接放在工程文件夹下面即可,即放在debug同级文件夹。

2.直接用绝对路径的时候,有反斜杠的时候在用两个反斜杠,如E:\\new folder\\拣练系统\\图片样品\\cjy\\01.bmp或者换成E:/new folder/拣练系统/图片样品/cjy/01.bmp,这样绝对路径可读了。

3.

CFileDialog dlg(TRUE,_T("*.bmp"),NULL,OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,_T("image files(*.bmp) | *.bmp; | All files (*.*) | *.*||)"),NULL);
    dlg.m_ofn.lpstrTitle = _T("Open Image");  //打开文件对话框标题名
    
    if (dlg.DoModal() != IDOK)                //判断是否获取到图片
    {
        return;
    }
    CString mPath = dlg.GetPathName();       //获取图片路径

    IplImage* imgTmp = cvLoadImage((LPSTR)(LPCTSTR)mPath,0);//通过这个路径加载图片进来(LPSTR)(LPCTSTR)mPath  0->强制转换读取图像为灰度图  1->读取彩色图

用以上方法读,直接找到需要加载图片的文件夹,但是我调试时看看它的路径名称竟然是下面这个,不要双反斜杠,然后我就有点凌乱了。。。

然后我查了下这个反斜杠与双反斜杠以及斜杠在路径读取中的含义,下面是大牛的解释:

至于上述问题出现的原因,要从字符串解析这方面来分析。学过编程的人都应该知道,在C里面,输出字符串时,如果想输出一个换行,那就要加上'\n'这个标志,类似的,输出一个TAB,就加上'\t',也就是说,反斜杠("\")这个符号会把跟在它后面的字符结合起来转义成其它字符。根据这个原理,如果想输出双引号('"'),就需要输入'\"',这样才会将包含了双引号的字符串正确的写入内存中。那么如果想输入一个反斜杠呢?很简单,只要敲'\\'就可以了。

来源链接:http://blog.sina.com.cn/s/blog_6a2236590100ux1r.html


然后然后这样就可以了,以此祭奠我逝去的时间。。。


附:在此问题查找资料的过程中,看到网友又说图片大不能够载入进去,我用了3.75M的图片能够载入。


     

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值