作者Leon (Achilles)
站內MATLAB
標題Re: [繪圖] 想請教如何利用任一個邊緣檢測運算得數值
時間Tue Jan 7 23:51:25 2014
※ 引述《YoursEver (銀英傳出webgame!?)》之銘言:
: 抱歉,那就是我太激動了. orz.
: 基本上處理這個問題需要的就是 edge detection + haugh transform.
: 我不知道你手邊的matlab版本,
: online help上, 2013b的版本能查得到"haugh"這個function,
: 但我手邊的2010就沒有.
呃.. 你太激動了.
而且, 我猜你應該是在講 Hough Transform.
: implement的細節上:
: 0. 假設已經完成edge detection.
: 1. Haugh的精神在於: 對參數化後的曲線以投票的方式來決定參數.
: 2. 以找圓心半徑為例,實作時你可能需要的步驟如下:
: (a) 對圓周上的每一個點,找出可能通過該點的圓心和半徑.
: (實作時,相當於以圓周上的每個點依序作為圓心,畫同心圓)
: (b) 上面的結果,會建議出一組得票數最高的圓心和半徑.
: (每一個同心圓算一票,最多同心圓交會的那點,就是你要求的圓心;
: 實作上,請detect 2D local maximum.).
: (c) 有了圓心後,半徑就能算出來了.
: (d) 依據你算出來的圓心半徑,重新畫個圓在你的input上.
: 一切的重點精神只在於: "將曲線參數化,然後進行投票."
: 要怎麼參數化,要怎麼投票,可以隨自己高興.
: (但是請以 好計算&有道理 為優先考量)
: 不必死板板地學講議,課本或wiki上面的form.
恩.. 我的 PhD 是 Image Reconstruction,
不過你上面講的那些東西, 實際上應該沒辦法用.
原因在於, edge detection 出來之後不是一個 perfect boundary.
而且也不會是 Binary value.
實際狀況, 我個人喜歡用 Active countour + shape regularization.
你如果硬要用 Hough transform, 你可以用這個試試看
http://www.mathworks.com/matlabcentral/fileexchange/
9833-hough-transform-for-circle-detection
--
趙客縵胡纓,吾鉤霜雪明。銀鞍照白馬,颯沓如流星。
十步殺一人,千里不留行。是了拂衣去,深藏身與名。
閑過信陵飲,脫劍膝前橫。將炙啖朱亥,持觴勸侯贏。
三杯吐然諾,五嶽倒為輕。眼花耳熱後,意氣素霓生。
就趙揮金錘,邯鄲先震驚。千秋二壯士,烜赫大梁城。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.121.19.9
→ YoursEver:=_=果然激動到拼錯了; 另外,根據原po的敘述,看起來是限 01/08 00:33
→ YoursEver:定用hough的; 以這題來講,靠hough會比靠snake容易. 01/08 00:34
→ YoursEver:至於我上面說的內容,10 多年前我念碩班的時候就寫過了, 01/08 00:34
→ YoursEver:確定可行. 01/08 00:34
→ Leon:do you want to try on a harder case? 01/08 08:36
→ YoursEver:For more complicated cases, of course we should 01/08 09:39
→ YoursEver:adopt level-set or snake+shape prior or some other 01/08 09:39
→ YoursEver:method. However, for the case mentioned above, Hough 01/08 09:40
→ YoursEver:is quite enough. 01/08 09:41