Opencv出现“_pFirstBlock == pHead”错误的解决方法
先说结论:
opencv链接库使用错误。
1,确认VS工程属性中,opencv的链接库路径和版本正确。
VS2013应该使用vc12目录,VS2012对应vc11目录。debug版和release版要区分。
2,VS工程的运行库参数应该使用"/MDd“。
3,系统环境变量Path中,opencv的目录和VS工程设置的路径 应该一致。(本次问题的原因!)
---------------------------------------------------------------------------------------------------
开发环境:
VS2013+Opencv3.0
错误现象:
Debug时,出现如下窗口。
调查经纬:
通过调试,发现是在查找轮廓后,释放vector的地方报的错。写了个简单的代码试了一下。
#include <opencv2\opencv.hpp> using namespace cv;
using namespace std; void test(Mat src)
{
vector<Mat> list;
split(src, list);
}
void main()
{
Mat src(300,300, CV_8UC3);
src = 0;
test(src);
return;
}
在test()结束时,也会发生同样的错误。
上网查了一下,一般原因有两个:
------------------------------------------------------------------------
1,Opencv库链接错;
比如,Debug模式下链接了Release的库(opencv中*.d.lib是Debug版,不带d的是release版);
或者,还有一部分是因为VS2012使用了2013的库(Opencv目录下vc12是VS2013的库,而不是VS2012的);
please check, if you're linking to debug dlls (ending in *.d.dll) in debug mode. also, if you link against "multithreaded-dll" c-runtime
2,VS工程属性设置错误。
VS的工程属性里面应该使用/MDd,不能使用/MTd;
------------------------------------------------------------------------
但是查了下,我的VS工程设置都没有问题。于是拿Depends查看一下编译后的exe文件,显示链接的Opencv库也是正确的。
又看了一下DLL库的属性,显示是链接到了vc11目录下。
突然想到,原来电脑上用的是VS2012,使用的是vc11目录下的opencv库,所以系统变量里面设置的也是cv11的路径。
改用VS2013后,虽然工程属性里面都改成了vc12目录,但是运行exe程序时,还是会根据PATH系统变量,去找到vc11目录下的库文件。
※ depends 在VS2008以后就不支持了,需要到官网下载:http://www.dependencywalker.com/
解决方法:
修改系统环境变量PATH,把opencv库的目录改为vc12目录下。重启VS,再次调试,错误消失。
※ 前提,要确认VS工程属性中的链接库设置正确。
参考链接:
http://answers.opencv.org/question/35437/problem-using-stdvector-as-a-parameter-in-some-opencv-functions/
https://stackoverflow.com/questions/26803975/debug-assertion-failed-pfirstblock-phead-using-opencv
https://stackoverflow.com/questions/21261709/debug-assertion-failed-expression-pfirstblock-phead-using-opencv-and-c-tr
Opencv出现“_pFirstBlock == pHead”错误的解决方法的更多相关文章
- Eclipse启动时发生An internal error occurred during: "Initializing Java Tooling".错误的解决方法
问题描述: Eclipse启动时发生An internal error occurred during: "Initializing JavaTooling".错误的解决方法 解决 ...
- GCC-4.6.3编译linux2.6.32.12内核出现“重复的成员‘page’”错误的解决方法
使用gcc4.6.3编译linux2.6.32.12内核出现错误如下: In file included from drivers/net/igbvf/ethtool.c:36:0: drivers/ ...
- Linux系统Vsftp 传文件出现 553 Could Not Create File错误的解决方法
解决方法: 登录出现了这个错误提示:553 Could not create file SELinux设置如下 查看SELinux设置 [root@localhost ~]# getsebool -a ...
- [转]权限问题导致Nginx 403 Forbidden错误的解决方法
权限问题导致Nginx 403 Forbidden错误的解决方法 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-08-22 这篇文章主要介绍了权限问题导致Nginx 403 F ...
- ueditor上传大容量视频报http请求错误的解决方法
故障现象: 当使用百度编辑器ueditor上传大容量视频或大容量图片的时候,编辑器报"http请求错误"的解决方法详解: 原因分析: 目前很多CMS整合了百度的ueditor编辑器 ...
- window10 安装出现the error code is 2503错误的解决方法
window10 安装出现the error code is 2503错误的解决方法: 设置 C:\WINDOWS\TEMP的权限
- MyEclipse+Tomcat 启动时出现A configuration error occured during startup错误的解决方法
MyEclipse+Tomcat 启动时出现A configuration error occured during startup错误的解决方法 分类: javaweb2013-06-03 14:4 ...
- Jquery中使用setInterval和setTimeout会提示缺少对象的错误,解决方法如下:
直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下: 方法1. 应用jQuery的扩展可以解决这个问题. $(document).ready(function(){ $.extend( ...
- ASP.NET MVC 3 loginUrl自动变成Account/Login,并且发生404错误的解决方法
http://www.cnblogs.com/think8848/archive/2011/07/08/2100814.html ASP.NET MVC 3 loginUrl自动变成Account/L ...
随机推荐
- Linux环境下安装配置Node.js
1.在官网查看版本,LTS代表长期支持的版本 2.进入服务器 3.输入命令:·wget https://npm.taobao.org/mirrors/node/v8.9.3/node-v8.9.3-l ...
- Maven-08: 插件的配置
完成了插件和生命周期的绑定之后,用户还可以配置插件目标的参数,进一步调整插件目标所执行的任务,以满足项目的需求.几乎所有Maven插件的目标都有一些可配置的参数.用户可以通过命令行和POM配置等方式来 ...
- 【windows】 配置一个本地的tomcat服务器
配置tomcat 公司的许多业务都是用java+tomcat模式的,做本地测试的时候经常要搭建一个自己的tomcat服务器.整个操作不难,但是记录一下,万一以后遇到什么问题也可以放这里. ■ 安装ja ...
- 【CSS】 CSS的一些应用实例和参考
css 一些应用实例 基本抄自http://www.w3school.com.cn/css/css_align.asp ..把这些知识消化吸收然后以自己的话来解释一下 ■ 对齐 ● 用margin属 ...
- 4.Apache POI使用详解
一.POI结构与常用类 1.POI介绍 Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. .NET的开发人 ...
- Vue的组件
1,局部组件就是在Vue对象内部注册的构造器 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- C语言实现Linux命令——od
C语言实现Linux命令--od 实现要求: 复习c文件处理内容 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 main与其他分开,制作静态库和动态库 编写M ...
- alpha-咸鱼冲刺day6
一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 !!!QAQ可以做到跟数据库交互了!!!!先来撒花花!(然后继续甲板) (然后就没有进展了.翻车+1s) 四,问题困难 数据库交 ...
- Alpha冲刺置顶随笔
项目名称:城市安全风险管控系统 小组成员: 张梨贤.林静.周静平.黄腾飞 Alpha冲刺随笔 Alpha冲刺Day1:http://www.cnblogs.com/linlkg/p/7896980.h ...
- Alpha冲刺Day6
Alpha冲刺Day6 一:站立式会议 今日安排: 由张梨贤继续完成前一天委托第三方剩余的内容,并完成委托情况查看这一子模块 由黄腾飞继续完成前一天企业自查风险管理剩余的内容,并完成风险上报这一子模块 ...