zzz*_*zzz 13 opencv hough-transform
OpenCV中的HoughLines或HoughLinesP函数是否像HoughCircles函数一样以累加器顺序返回行列表?我想知道线的排序.获得线路的累加器值也非常方便,因此可以使用智能和自适应阈值而不是固定阈值.是否可以使用排序或累加器值而无需自行重写OpenCV?
Sam*_*Sam 15
HoughTransform命令以投票数递减的行.你可以在这里看到代码
但是,当函数返回时,投票计数会丢失 - 唯一的方法就是修改OpenCV.
好消息是,这不是很复杂 - 我自己做过一次.将输出更改vector< Vec2f >为vector< Vec3f >并使用投票计数填充最后一个参数只需几分钟.
此外,您必须修改CvLinePolar以添加第三个参数 - 实现hough C,并且有一个包装器C++,因此您必须修改实现和包装器.
要修改的主要代码在这里
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 );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5602 次 |
| 最近记录: |