所以我有这样的图像

 CG generated bathroom
(来源: 德维兹.ru)

我想要得到这样的东西(我没有画出我想要的所有线条,但我希望你能明白我的想法)

 Black & White CG generated bathroom with some red lines  between tiles
(来源: 俄罗斯国家报)

我需要一些超快速的算法来查找其上的所有直线。我想给出算法参数,例如最小长度和最大线失真。我想获得相对于图片像素坐标的线的起点和终点。

因此,在这张图片上找到瓷砖之间的所有线条,并在顶部有 2 条黑线。

所以我需要一种算法来超快速地找到图片上不同颜色的直线。

有这样的算法吗?(超级快=)

有帮助吗?

解决方案

您需要使用复杂的图像处理方法,例如 Canny 边缘检测、Marr-Hildreth 边缘检测、高斯滤波和霍夫变换等。

但“超快”方法的存在可能性极小。

大多数图像处理算法的最小复杂度至少为 O(N^2).

我所说的“超快”最多是指 O(1) ;)

一些可能有帮助的链接:

  1. http://www.sci.utah.edu/~cscheid/spr05/imageprocessing/project4/
  2. http://www.contrib.andrew.cmu.edu/~suppe/mobot/
  3. http://www.dunwich.org/baptiste/sic/ecms/ecpublis.html#2
  4. http://wayback.archive.org/web/20090304153603/http://hdebruijn.soo.dto.tudelft.nl/jaar2006/alders.htm

其他提示

我想你需要一个 Hough变换或一个的 Radon变换。阅读我挂了文章,并随时提出任何问题:)

考虑轮廓点算法在 http://outliner.codeplex.com/ 描述 它将在笔划组织贝塞尔曲线的形式产生所述矢量边缘。 你需要一些努力来选择最straigh招(端点准备使用)。 这algoritms是相当快的,但不是超级骗子。

我不知道它将如何在你的应用程序工作,但你可以尝试某种的边缘检测方法。不知道如何将这些边缘转化为向量,如果这是你在找什么,但是这可能是一个起点。无论如何,一些边缘检测算法(例如离散Laplace算)是相当快的MODERM计算体系结构。

哦,如果你这样做,你可能想将图像转换为的YCbCr 而只使用亮度(Y)的组成部分。这也是一个快速的操作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top