WIN7下 vs2010 调用findChessboardCorners 和 findCirclesGrid异常,请各位帮组
WIN7系统下,使用VS2010 MFC 开发工具 用的是Opencv249的库
我用的棋盘尺寸或点阵 为12 * 10
cv::Size szBoard(12, 10) ;
cv::vector<Point2f> centers;
使用Opencv249 release 版库时
调用findChessboardCorners( SrcImg , szBoard , centers )
和findCirclesGrid(SrcImg, szBoard , centers , CALIB_CB_SYMMETRIC_GRID)时,返回值为true ,
但 centers.size() 值很大 或者是 负值 , 通常 为 -8635847左右
整个函数执行完成时,程序就奔溃了。
使用Opencv249 debug 版库时
findChessboardCorners 和 findCirclesGrid 能返回true, centers.size() 返回数目也对
但 整个函数执行完成时,程序就奔溃了。
调试跟踪 异常位置:
对于 : findCirclesGrid(SrcImg, szBoard , centers , CALIB_CB_SYMMETRIC_GRID) ;
有0x77162e34 处有未经处理的异常: 0xC0000005: 写入位置 0x91ed0f50 时发生访问冲突
template<typename _Tp> inline Ptr<_Tp>::~Ptr() { release(); }
>>
template<typename _Tp> inline void Ptr<_Tp>::release()
{
if( refcount && CV_XADD(refcount, -1) == 1 )
{
delete_obj();
fastFree(refcount);
}
refcount = 0;
obj = 0;
}
>>>
template<typename _Tp> inline void Ptr<_Tp>::delete_obj()
{
if( obj ) delete obj; // 出现在此处
}
很大可能是:vector<Point2f> centers 中的内存分配和再使用有问题。
猜测:很可能是 VS2010环境配置 与 opencv中代码有冲突。
或者说opencv本身这两个函数有bug,如果有人碰到同样问题请给点帮助
但我无从下手,请各位帮助!!!!!!!!!!!!!!!!!!!! 不胜感激
本人使用opencv经验不足,请各位 大神不吝指教!!!!!!!!!!!!!
本人愿意出100RMB,给出帮助费!