【发布时间】:2012-01-05 15:20:21
【问题描述】:
我正在尝试对我的视频流使用阈值,但它不起作用。
我的视频流:
Mat *depthImage = new Mat(480, 640, CV_8UC1, Scalar::all(0));
然后我尝试进行自适应阈值处理,(也不适用于常规阈值处理)
for(;;){
if( wrapper->update()){
wrapper->getDisplayDepth(depthImage);
cvAdaptiveThreshold(depthImage, depthImage,255,CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY,75,10);
imshow("Depth", *depthImage);
}
int k = waitKey(25);
if(k == 27 ) exit(0);
}
我收到此错误:
OpenCV 错误:cvarrToMat 中的错误参数(未知数组类型),文件 /Users/olivierjanssens/source/OpenCV-2.3.1/modules/core/src/matrix.cpp,第 646 行 终止称为抛出异常
我做错了什么,我可以完美地显示并看到流。但是当我添加这个阈值时,我得到了前面提到的错误。 (顺便说一句,我对 opencv 比较陌生)。
提前谢谢!
【问题讨论】:
-
你确定这条线是正确的吗?
imshow("Depth", *depthImage); -
是的,因为那条线在没有阈值线的情况下工作。如果我删除它,这个设置没有任何变化。
-
如果我将阈值线放在注释中并添加例如:'cvCircle(depthImage, cvPoint(point.X, point.Y), 20, cvScalar(0,255,0), 1) ;'要画一个圆圈,它会给出同样的错误。
标签: c++ image-processing opencv threshold