18

所以我有張圖片喜歡這張是否有任何超快速算法在圖片上查找LINES?

CG generated bathroom http://www.de-viz.ru/catalog/new2/Holm/hvannaya.jpg

我想是這樣的(我hevent畫我希望所有的行,但我希望你能得到我的想法)

Black & White CG generated bathroom with some red lines between tiles http://superior0.narod.ru/lines.jpg

我需要一些超快速算法來找出所有的直線。我想給算法參數,如最小長度和最大線路失真。我想獲得相對於圖片像素座標線的起點和終點。

因此,在這張圖片上查找瓷磚之間的所有線條,並在上面放置2條黑色線條。

所以我需要算法來超快速找到圖片上不同顏色的直線。

有沒有這樣的算法? (super duper fast =)

+0

你能標記你想找的線嗎?你是什​​麼意思「達萊斯」?瓷磚? – Jacob 2010-04-08 01:14:36

+0

dalles =我的字典中的瓷磚...)是)我想要例如寬度小於25像素,最小長度爲100像素的所有直線。 – Rella 2010-04-08 02:07:44

+0

第一個鏈接已死。 – hippietrail 2017-08-08 00:02:19

回答

14

您需要使用複雜的圖像處理方法,如Canny邊緣檢測,馬爾 - 希爾德里斯邊緣檢測,高斯濾波和Hough變換等

,但存在「超快速」方法是非常不太可能。

大部分圖像處理算法的最小複雜度至少爲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
+3

鏈接2需要授權,鏈接4 404'd。感謝其他人 – 2012-05-10 17:54:21

+1

啊我看到我父親已經聯繫了[4],我會讓他知道的。 :-)更好的鏈接是:http://www.alternatievewiskunde.nl/jaar2006/delphi.htm,你也可以在這裏找到源代碼和其他東西。 – atlaste 2015-07-09 08:02:33

5

我認爲你需要一個Hough transformRadon transform。閱讀我已鏈接的文章,隨時可以提出任何問題:)

+0

霍夫變換是相當緩慢......我必須使用2k現場視頻......現在看着氡...... – Rella 2010-04-08 15:14:06

+0

..不是如果你調整它到你的特定問題。如果您稍微降低精度,您可以預先計算一些數學表以提高性能 – JBRWilkinson 2010-04-21 10:32:06

0

我不知道它在您的應用程序中的工作情況如何,但您可以嘗試某種edge detection方法。不知道如何將這些邊緣轉換成矢量,如果這就是你想要的,但這可能是一個開始的地方。無論如何,一些邊緣檢測算法(例如Discrete Laplace Operator)在現代計算體系結構上非常快。

哦,如果你這樣做,你可能想要將圖像轉換爲YCbCr,並使用luma(Y)組件。這也是一個快速的操作

+0

如果您之後的所有值都是強度值,則無需轉換爲YCbCr。 – ergosys 2010-04-08 01:19:08

1

考慮描述於http://outliner.codeplex.com/ 中的輪廓點算法它將以筆劃組織的貝塞爾曲線形式生成矢量描述的邊。 您需要付出一些努力來選擇最直的筆劃(終點即可使用)。 這個算法是相當快,但不是超級困難。

相關問題