surf+kd树+bbf c++调用opencv库做的运行到某处报错

qiongqia6470 2017-11-12 11:06:11
最近在搞surf+kd树+bbf的学习,c++代码遇到一些错误真快让我崩溃了。出现的错误如下:
Unhandled exception at 0x75E7C54F in surf_match.exe: Microsoft C++ exception: cv::Exception at memory location 0x002CB098.
> KernelBase.dll!_RaiseException@16() 未知

[外部代码]

opencv_core2410d.dll!53a0c7f8() 未知

[下面的框架可能不正确和/或缺失,没有为 opencv_core2410d.dll 加载符号]


然后我双击 opencv_core2410d.dll!53a0c7f8(),它说我未加载opencv_core2410d.pdb。





控制台显示的错误是:


我在网上到处找解决方案但是都没成功!!!!!!!!!!
而且经过设置断点我已经看了我输入的图片运行到cv::cvtColor(imgRGB1, imgGray1, CV_RGB2GRAY);这里imgRGB1是三通道的图像并不是控制台报错的那样说我不是三通道的,我想肯定就是opencv_core2410d.pdb问题,导致我为opencv_core2410d.dll无法加载符号,我的opencv配置应该是没问题的,因为运行别的程序都可以就这个出问题。
请各路大神帮我一把,谢谢!!!!!跪求
...全文
192 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-14
  • 打赏
  • 举报
回复
引用 9 楼 qiongqia6470 的回复:
[quote=引用 8 楼 zhao4zhong1 的回复:] 提醒,OpenCV是开源的, 先从源代码重新生成整个OpenCV库,再单步到cv::cvtColor里面查看原因。
用cmake?[/quote] 好象是得用最新版的CMake先配置好生成OpenCV需要的项目文件。
赵4老师 2017-11-13
  • 打赏
  • 举报
回复
先Mat src = imgRGB1.getMat(); int scn = src.channels();
赵4老师 2017-11-13
  • 打赏
  • 举报
回复
C:\Program Files\OpenCV\modules\imgproc\src\color.cpp 2777~2781行:
void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
{
    Mat src = _src.getMat(), dst;
    Size sz = src.size();
    int scn = src.channels(), depth = src.depth(), bidx;
……
重建所有 在cv::cvtColor(imgRGB1, imgGray1, CV_RGB2GRAY);这句前 先Mat src = _src.getMat(); int scn = src.channels(); 再打印scn的值。
赵4老师 2017-11-13
  • 打赏
  • 举报
回复
重建所有 在cv::cvtColor(imgRGB1, imgGray1, CV_RGB2GRAY);这句前打印imgRGB1的imgRGB1.channels()的值
qiongqia6470 2017-11-13
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
提醒,OpenCV是开源的, 先从源代码重新生成整个OpenCV库,再单步到cv::cvtColor里面查看原因。
用cmake?
赵4老师 2017-11-13
  • 打赏
  • 举报
回复
提醒,OpenCV是开源的, 先从源代码重新生成整个OpenCV库,再单步到cv::cvtColor里面查看原因。
qiongqia6470 2017-11-13
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
{
cv::Mat imgRGB1;
cv::Mat imgRGB2;
printf("leftfilename:[%s]\n",leftfilename);
imgRGB1 = cv::imread(leftfilename, 1);
if (NULL==imgRGB1.data) {
printf("file [%s] Error:missing file, improper permissions, unsupported or invalid format\n",leftfilename);
return -1;
}
printf("imgRGB1.channels():%d\n",imgRGB1.channels());
imgRGB2 = cv::imread(righttfilename, 1);
赵老师我运行了一下还是不行,虽然都是三通道的
赵4老师 2017-11-13
  • 打赏
  • 举报
回复
{
cv::Mat imgRGB1;
cv::Mat imgRGB2;
printf("leftfilename:[%s]\n",leftfilename);
imgRGB1 = cv::imread(leftfilename, 1);
if (NULL==imgRGB1.data) {
 printf("file [%s]  Error:missing file, improper permissions, unsupported or invalid format\n",leftfilename);
 return -1;
}
printf("imgRGB1.channels():%d\n",imgRGB1.channels());
imgRGB2 =  cv::imread(righttfilename, 1);
qiongqia6470 2017-11-13
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
先Mat src = imgRGB1.getMat(); int scn = src.channels();
赵老师,我加这个就报错
qiongqia6470 2017-11-13
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
C:\Program Files\OpenCV\modules\imgproc\src\color.cpp 2777~2781行:
void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
{
    Mat src = _src.getMat(), dst;
    Size sz = src.size();
    int scn = src.channels(), depth = src.depth(), bidx;
……
重建所有 在cv::cvtColor(imgRGB1, imgGray1, CV_RGB2GRAY);这句前 先Mat src = _src.getMat(); int scn = src.channels(); 再打印scn的值。
我没找到您说的这个文件C:\Program Files\OpenCV\modules\imgproc\src\color.cpp,我电脑里怎么没有啊

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧