OpenCV使用detectMultiScale可能会报错_CrtIsValidHeapPointer的解决方法
来源:互联网 发布:老炮儿 网络剧 编辑:程序博客网 时间:2024/06/06 10:48
1.运行环境
VS2010+OpenCV2.4.6
2.问题描述及解决方法
在使用OpenCV的人脸检测时,用到了detectMultiScale函数,使用方法为:face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(30, 30) );
其中faces为vector,在faces这个vector释放时,会出现_CrtIsValidHeapPointer的bug。这应该是由于detectMultiScale函数封装在OpenCV的dll中,在检测到人脸后会对faces这个vector进行操作,而在该变量使用结束释放时,再次对其进行操作时,就会报错。遇到这个问题的时候,我也在网上搜索了一些解决方法,比如有人说这个问题可能需要按照如下设置:project-->settings-->c/c++标签页中的category下拉筐中选code generation,然后在Use Rutime Library中选DEBUG Multithreaded DLL或Mutithreaded DLL,但是这种方法需要把MFC的使用方式(如果用到了MFC的库)从“静态库中使用MFC”改为“在共享dll中使用MFC”,这样造成的一个问题是,当你自己写的程序需要发布给别人使用时,如果对方的电脑没有安装完全你的程序需要的MFC的库就会无法运行,而在静态库库中使用,在生成exe时就会包含所需的MFC的库,在别的地方运行更方便更有保障,但是之前的问题该如何解决?经过我自己的尝试,需要把faces这个vector变量设为全局变量,每次调用后用clear清空内容,以备下一次使用,这样faces在程序运行过程中不释放,因此也不会报错,在程序结束时会释放,会报错,但是在实际运行时在结束处报错,并不影响程序的使用,这样的方法虽然不够治本但是能起到一定治标的作用。
0 0
- OpenCV使用detectMultiScale可能会报错_CrtIsValidHeapPointer的解决方法
- OpenCV人脸检测使用detectMultiScale可能会报错_CrtIsValidHeapPointer的解决方法
- opencv中detectMultiScale函数的使用
- opencv中detectMultiScale函数的使用
- opencv使用detectMultiScale报错原因
- 调用opencv的detectMultiScale函数时报错
- _CrtIsValidHeapPointer出错的解决方法
- 有关 _CrtIsValidHeapPointer 错误的可能!
- _CrtIsValidHeapPointer(pUserData)可能的原因(转)
- OpenCV之_CrtIsValidHeapPointer报错问题
- 跨域名/网段的http交互可能会报错
- 使用OpenCv库的MFC程序在退出后报内存泄露 可能解决方法
- 学习OpenCV——Hog.detectMultiScale的心得
- 学习OpenCV——Hog.detectMultiScale的心得
- 如何训练opencv hog.detectmultiscale 的分类器
- 学习OpenCV——Hog.detectMultiScale的心得
- eclipse下不能编译.ftl文件,会报错的解决方法
- 关于OPENCV中imwrite出错的一种可能及解决方法
- 使用循环语句打印矩阵
- shell 编程之grep 选项
- 第九周项目三(2)星号图
- sublime 插件安装
- vijos p1116(codevs 1038 )一元三次方程求解 题解
- OpenCV使用detectMultiScale可能会报错_CrtIsValidHeapPointer的解决方法
- Linq使用Group By经验总结
- HTTP协议详解
- Path sum II |leetcode c++
- .net学习必备基础知识
- Java compiler level does not match the version of the installed Java project facet
- Android解析XML的方式 优缺点
- hadoop 调优
- Mac显示或隐藏文件终端指令