Re: [繪圖] 想請教如何利用任一個邊緣檢測運算得數值

看板MATLAB作者 (Achilles)時間11年前 (2014/01/07 23:51), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《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

01/08 00:33, , 1F
=_=果然激動到拼錯了; 另外,根據原po的敘述,看起來是限
01/08 00:33, 1F

01/08 00:34, , 2F
定用hough的; 以這題來講,靠hough會比靠snake容易.
01/08 00:34, 2F

01/08 00:34, , 3F
至於我上面說的內容,10 多年前我念碩班的時候就寫過了,
01/08 00:34, 3F

01/08 00:34, , 4F
確定可行.
01/08 00:34, 4F

01/08 08:36, , 5F
do you want to try on a harder case?
01/08 08:36, 5F

01/08 09:39, , 6F
For more complicated cases, of course we should
01/08 09:39, 6F

01/08 09:39, , 7F
adopt level-set or snake+shape prior or some other
01/08 09:39, 7F

01/08 09:40, , 8F
method. However, for the case mentioned above, Hough
01/08 09:40, 8F

01/08 09:41, , 9F
is quite enough.
01/08 09:41, 9F
文章代碼(AID): #1Ip2A1Js (MATLAB)
文章代碼(AID): #1Ip2A1Js (MATLAB)