image-processing - 从一组随机线段中检测四边形形状

标签 image-processing opencv artificial-intelligence shapes hough-transform

enter image description here

附图是Opencv 2.4.2的霍夫变换输出

你能告诉我最好的算法来从这些线段中检测出最好的四边形(不总是矩形)吗

即使有些角位于图像边界之外,我仍然需要检测它们

非常感谢

最佳答案

没有时间实际尝试这个,我可以想象这样的事情:

  1. 遍历所有直线并计算斜率。
  2. 按斜率对线进行排序
  3. 如果两条线的斜率大致相似,则它们要么是平行的,要么是同一条线中有一个间隙(例如,左边几乎垂直的线)。要找出哪个,请计算它们将截取 x 或 y 轴的位置。如果他们在同一点截取,他们是同一条线,应该合并为一条线。如果不是,请将它们放在一组(大致)平行线中。
  4. 将每组平行线与另一组平行线进行比较,并计算它们是否相交(可能在屏幕外)。
  5. 应用一些依赖于应用程序的标准来挑选最好的。

这个的运行时间在很大程度上取决于检测到的线的数量和平行线组的数量。您可以通过仅考虑最小长度的线、使用线被视为平行的阈值等来改进一点。

关于image-processing - 从一组随机线段中检测四边形形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155323/

相关文章:

android - 颜色触摸效果的最佳方法

android - 为 Android 使用 OpenCv contrib 模块

python - Tesseract OCR 无法识别任何字符

opencv - 如何从单摄像头生成立体图像?

python-3.x - 摆脱 OpenCV-Python 中的线条

java - ImageJ 中多种颜色的叠加

python - minAreaRect(contours) 的输出是什么

java - Swing Pin 中网格单元的颜色渐变动画

r - R 中的多类 ROC 曲线

java - Java项目中国际象棋AI的实现