opencv排错总结

(1) 没有找到 tbb_debug.dll

viewtopic.php?p=52223

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

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()输出了未进行转换的浮点深度的图像,找了好长时间,在这里找到了答案 http://bbs.ednchina.com/BLOG_ARTICLE_2061059.HTM
在处理一些需要图像相加运算的操作时,通常定义
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保存。

你可能感兴趣的:(exception,测试,Microsoft,null,Build,DST)