OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 83315|回复: 66

opencv排错总结

  [复制链接]
发表于 2012-3-15 22:12:02 | 显示全部楼层 |阅读模式
(1) 没有找到 tbb_debug.dll

<!-- l --><a class="postlink-local" href="http://www.opencv.org.cn/forum/viewtopic.php?p=52223">viewtopic.php?p=52223</a><!-- l -->

在这里面找到了解决办法,里面的哥们太有才,顶一下

Re: win7,vs2010,opencv2.3,运行程序,报错“计算机丢失tbb_debug.dll”

由 xxw168 » 2011-12-04 23:28
我也遇到过。我将\opencv\build\common\tbb\ia32目录下的tbb.dll复制改名为tbb_debug.dll

搞定!哈哈



(2) 0x7c812afb 处未处理的异常

函数中参数类型不对。比如整型数据,传入double型 等



(3) openCV 中像素值是什么?

解:http://zhidao.baidu.com/question/337256461.html

对于彩色图,每个像素点其实是用个数组表示的,我记得是按BGRA的顺序

像素值,即对应像素的数值对于灰度图像,像素值是该像素点的 亮度值对于彩色图像,像素值由 红 绿 蓝 三个颜色的 幅度值表示 A通常不用


(4) openCV 帮助文档问题。。

解:http://www.opencv.org.cn/index.php/Download#chm.E6.A0.BC.E5.BC.8F.E6.96.87.E6.A1.A3

之前下的ICVL 感觉很不全,好多函数都查不到,其实不然,索引时候有个技巧,比如:cvCalcHist() 函数,如果把全名

输入则找不到,只搜索CalcHist 就可以找到,有些函数得加cv,这样几乎所有目前学习的函数都能找到了,非常强大。。


(5) 什么是 HSV

解:HSV 是颜色模型的一种,H:色调 S:饱和度 V:亮度 HSV的三维表示从RGB 立方体演化而来。


(6)opencv中mask 的意思,如 cvAdd() 中 dst(I)=src1(I)+src2(I) if mask(I)!=0

解:http://blog.csdn.net/moc062066/article/details/6548450

要知道mask == NULL 和 mask(I) == 0 是两个概念,NULL 代表不存在这个矩阵,0代表这个矩阵为零,如果不存在则忽视mask 完全相加



(7)用cvReleaseImage() 释放从视频返回图像时出现“helloOpencv.exe 中的 0x7c812afb 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0011fa20 处的 cv::Exception。”


解:函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。


(8)cvShowImage() 显示图像为全黑全灰。

答:用cvShowImage()输出了未进行转换的浮点深度的图像,找了好长时间,在这里找到了答案[url:3vp1pr41]http://bbs.ednchina.com/BLOG_ARTICLE_2061059.HTM[/url:3vp1pr41]
    在处理一些需要图像相加运算的操作时,通常定义
    IplImage* dst = cvCreateImage(cvGetSize(img),IPL_DEPTH_64F,img->nChannels);
      当处理完成后,需要对原这个IPL_DEPTH_64F深度的图像进行显示的时候,就需要做一些转换。可以用cvScale()这个函数,这个函数主要是对图像做线性变换。如果不转换的话,可以发现显示的图像是全白的。这是由于IPL_DEPTH_64F类型的图片显示范围为[0,1]。
    cvMinMaxLoc(dst, &m, &M, NULL, NULL, NULL);
      cvScale(dst, dst, 1.0/(M-m), 1.0*(-m)/(M-m));//图像数据转换到[0,1]区间
    这个时候就可以正常的显示图像了。当需要在不同深度的图像之间转换时,也可以用cvScale()这个函数。这个时候的转换,中间有个截断处理过程。比如IPL_DEPTH_64F到IPL_DEPTH_8U,就会把300转换到255。下面转一段别人总结的深度显示范围。
      测试double型:0.0--1.0之间                           IPL_DEPTH_64F
      测试float型:0.0--1.0之间                              IPL_DEPTH_32F
      测试long型:0--65535之间                             IPL_DEPTH_32S        
      测试short int型:-32768--32767之间                  IPL_DEPTH_16S        
      测试unsigned short int型:0--65535之间              IPL_DEPTH_16U
      测试char型:-128--127之间                            IPL_DEPTH_8S         
      测试unsigned char型:0--255之间                     IPL_DEPTH_8U
      这个时候如果需要保存图像,请记住要先转换到IPL_DEPTH_8U的深度。因为只有8位单通道或者3通道(通道顺序为'BGR' )才可以使用cvSaveImage保存。

(9)
回复

使用道具 举报

发表于 2012-3-16 14:52:51 | 显示全部楼层

opencv排错总结

不错的总结
回复 支持 反对

使用道具 举报

发表于 2012-3-18 22:04:12 | 显示全部楼层

opencv排错总结

我在VS2010上配置了opencv2.3.0,没有安装cmake,网上有的说不用这个,配置完后用测试文件调通了,我特意调了opencv里自带的例子,发现总是出现这样的错误应用程序正常初始化(0xc000000d)失败,求解。。。。
回复 支持 反对

使用道具 举报

发表于 2012-3-21 10:57:15 | 显示全部楼层

opencv排错总结

写的很好!赞~~~
回复 支持 反对

使用道具 举报

发表于 2012-3-21 12:59:37 | 显示全部楼层

opencv排错总结

我在VS2010上配置了opencv2.3.0,没有安装cmake,网上有的说不用这个,配置完后用测试文件调通了,我特意调了opencv里自带的例子,发现总是出现这样的错误应用程序正常初始化(0xc000000d)失败,求解。。。。
我也遇到同样的问题,我的解决办法就是VS2008+openCV2.1   不用编译   一切正常!!!
回复 支持 反对

使用道具 举报

发表于 2012-4-25 13:45:07 | 显示全部楼层

opencv排错总结

希望大家能够继续添砖加瓦!
回复 支持 反对

使用道具 举报

发表于 2012-4-26 21:17:24 | 显示全部楼层

opencv排错总结

顶,好东西。。。。
回复 支持 反对

使用道具 举报

发表于 2012-6-5 10:32:34 | 显示全部楼层

opencv排错总结

我在VS中运行GrabCut的时候,遇到了下面的问题:

“GrabCut.exe”: 已加载“D:\\Program Files\\OpenCV\\build\\x86\\vc10\\bin\\opencv_core240d.dll”,Cannot find or open the PDB file
“GrabCut.exe”: 已加载“D:\\Program Files\\OpenCV\\build\\common\\tbb\\ia32\\vc10\\tbb_debug.dll”,Cannot find or open the PDB file
“GrabCut.exe”: 已加载“D:\\Program Files\\OpenCV\\build\\x86\\vc10\\bin\\opencv_highgui240d.dll”,Cannot find or open the PDB file
“GrabCut.exe”: 已加载“D:\\Program Files\\OpenCV\\build\\x86\\vc10\\bin\\opencv_imgproc240d.dll”,Cannot find or open the PDB file

这个文件夹应该是环境变量的吧?为何会出这种情况哪?
PS:我OpenCV的设置都按网站的要求一步一步设定正确了。
我查看了一下目标文件夹下的几个dll文件,都有,但是就是没读出来。

已解决:
1. 这儿有一篇帖子,讲的是“Microsoft符号缓存”的处理办法:
    [url:1y6rgxl1]http://hi.baidu.com/%D6%F3%D2%BB%B1%AD%B2%E8/blog/item/0302b3188ef42f5143a9adf9.html[/url:1y6rgxl1]
2.我出现的问题是这样解决的:把如下代码段删掉就行了
  1. if( argc!=2 )
  2.     {
  3.             help();
  4.         return 1;
  5.     }
复制代码
3.后来我又遇到过类似的情况,是个非常简单的程序,我就“直接运行不调试”也可以解决。
回复 支持 反对

使用道具 举报

发表于 2012-6-5 16:46:13 | 显示全部楼层

opencv排错总结

这个是什么错误呢?opencv error Assertion failed <dims<=2&&data&&<unsigned>i0<<unsigned>size.p[0]&&..............in unknown function ,file f:\\opencv\\build\\include\\opencv2\\core\\mat.hpp,line 522
回复 支持 反对

使用道具 举报

发表于 2012-6-7 13:58:17 | 显示全部楼层

opencv排错总结

各位都大神,菜鸟来报到
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-29 05:21 , Processed in 0.012063 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表