首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mat.Depth() Opencv

Mat.Depth() Opencv
EN

Stack Overflow用户
提问于 2014-09-21 13:32:53
回答 2查看 2.1K关注 0票数 1

我正在研究使用Opencv的LK光流方法。当我试图执行我的代码时,我会收到以下错误。

断言失败( /tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140819-1745/modules/imgproc/src/cornersubpix.cpp,文件>= 0 && corners.depth() == CV_32F)第257行在抛出'cv::Exception‘实例之后调用/tmp/buildd/ros-hydro-opencv2-2.4.9-2precise-20140819-1745/modules/imgproc/src/cornersubpix.cpp:257:错误:(-215) >= 0& corners.depth()函数cornerSubPix中的== CV_32F

这是我代码的一部分

代码语言:javascript
复制
vector<Point2f> cornersA; 
cornersA.reserve(maxCorners); 
vector<Point2f> cornersB; 
cornersB.reserve(maxCorners);


goodFeaturesToTrack( imgA,cornersA,maxCorners,qualityLevel,minDistance,cv::Mat(),blockSize,0,k);


cornerSubPix( imgA, cornersA, Size( win_size, win_size ), Size( -1, -1 ), 
              TermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 20, 0.03 ) );


// Call Lucas Kanade algorithm

我在网上查了一下我收到的错误。这主要是因为定义了Point2d而不是Point2f。我找不到更多的东西了。我是这个地区的新手。如果你们能帮我解决这个问题,我会很感激的。谢谢..

EN

回答 2

Stack Overflow用户

发布于 2014-10-14 03:34:32

我对安卓/Java版本的OpenCV也犯了同样的错误。我甚至抛掉了角落的价值来检查它,这似乎没什么问题。

当我停止在旧映像上运行goodFeaturesToTrack和cornerSubPix并在新映像上运行它们时,它终于消失了。

所以不妨试试

代码语言:javascript
复制
goodFeaturesToTrack( imgB,cornersA,maxCorners,qualityLevel,minDistance,cv::Mat(),blockSize,0,k);


cornerSubPix( imgB, cornersA, Size( win_size, win_size ), Size( -1, -1 ), 
          TermCriteria( CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 20, 0.03 ) );

或者任何你称之为新形象的东西。如果有人能搞清楚为什么会这样,我很想知道。

票数 0
EN

Stack Overflow用户

发布于 2017-01-20 16:20:41

只是犯了同样的错误。查看cornerSubPix()源代码:

代码语言:javascript
复制
void cv::cornerSubPix( InputArray _image, InputOutputArray _corners,
                   Size winSize, Size zeroZone,
                   TermCriteria criteria )
{
    Mat corners = _corners.getMat();
    int ncorners = corners.checkVector(2);
    CV_Assert( ncorners >= 0 && corners.depth() == CV_32F );
    Mat image = _image.getMat();
          ...
}

所以这只有两个可能的原因。

  1. _corners不是合适的类型。
  2. _corners.checkVector(2)返回负->检查是否有空的_corners数组(这就是我的情况)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25959752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档