首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCV霍夫最强线

OpenCV霍夫最强线
EN

Stack Overflow用户
提问于 2012-07-06 05:02:53
回答 1查看 6.4K关注 0票数 13

OpenCV中的HoughLines或HoughLinesP函数是否像HoughCircles函数那样以累加器顺序返回行列表?我想知道线路的顺序。还可以非常方便地获得行的累加器值,因此可以使用智能和自适应阈值来代替固定的阈值。排序或累加器值是否在没有rewriting OpenCV myself的情况下可用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-06 20:04:21

HoughTransform按票数降序排列行。您可以看到代码here

但是,当函数返回时,投票计数会丢失-唯一的方法是修改OpenCV。

好消息是这并不是很复杂--我自己也做过一次。将输出从vector< Vec2f >更改为vector< Vec3f >并使用投票计数填充最后一个参数只需要几分钟的时间。

此外,您必须修改CvLinePolar以添加第三个参数- hough是在C中实现的,并且在C++中有一个包装器,因此您必须同时修改实现和包装器。

要修改的主要代码如下所示

代码语言:javascript
复制
 for( i = 0; i < linesMax; i++ )
 {
        CvLinePolar line;
        int idx = sort_buf[i];
        int n = cvFloor(idx*scale) - 1;
        int r = idx - (n+1)*(numrho+2) - 1;
        line.rho = (r - (numrho - 1)*0.5f) * rho;
        line.angle = n * theta;

        // add this line, and a field voteCount to CvLinePolar
        // DO NOT FORGET TO MODIFY THE C++ WRAPPER
        line.voteCount = accum[idx];          

        cvSeqPush( lines, &line );
 }
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11352528

复制
相关文章

相似问题

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