[opencv]中霍夫变换检测直线中pt1、pt2点的确定

在看毛星云的一本书《opencv3 编程入门》,书籍写的不错,不过越往后文中错误越多,可能是比较仓促吧。书本对每个原理的解释不是很清晰明了,对于新手来说。但如何运用函数书中讲解很清楚。

学习hough变换,书中271页,对其中的pt1.x = cvRound(x0 + 1000*(-b));的理解。
pt1与pt2点的计算方法 。
这里已知下图中的rh0 和θ,现在只需要求图中“任意”两点, 就能用cvLine画出pt1 -> pt2的直线 。
看看下图 就明白这里1000什么的是为什么了。其实也可以是其他的数值,比如500等。


这里是取了点(x0,y0)在直线上上下1000的距离,那么用cvLine画出来的线段就是从pt1 -> pt2的了。
那么pt1->pt2的直线距离就是2000。可以取其他的距离,不一定去1000,如600也可以。
1.这个地方也许会出现检测出来的线段长度比pt1->pt2还大,即包含了我们画的线段 , 这是肯定的。
2. 还会出现本来线段没有pt1->pt2这么长,那么我们画的就会过长了。 也是肯定会出现的情况。
因为:CV_HOUGH_STANDARD方法 只能得出rh0 和 θ的值。 这两个值只能确定直线,而不能确定线段是从哪开始到哪结束。

那么长度到底选多少合适?

发布了47 篇原创文章 · 获赞 107 · 访问量 29万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览