2013-11-05 167 views
0

所以我目前正在研究這個項目,我完成了90%的工作,只是需要特定問題的幫助。Matlab圖像邊緣調整/細化

所以設置是,當您使用「墨西哥帽子」陣列(如下所示)在RGB圖像的三個顏色通道上執行二維卷積(使用conv2)時,您將獲得圖像的邊界。但是這些邊界具有雙線效應,我想改變它以便只有單行形成邊界。因此,項目要求在將彩色圖更改爲灰色之後,「您將希望將輸入圖像中的每個像素轉換爲黑色像素(值爲0)或白色像素(255),具體取決於輸入中的像素圖像是否小於閾值

您將根據給定的閾值百分比(thrper)計算圖像中每個顏色層的閾值作爲輸入參數,例如,主腳本文件調用此閾值函數的值爲0.75,這意味着該函數將把全部範圍的底部75%中的值轉換爲黑色(新值= 0)的像素以及具有全部範圍的前25%中的值的像素到白色(新值= 255)例如,如果紅色圖層值的範圍從-100到+300,則閾值0.75的紅色閾值將爲200。

有人可以解釋這將如何完成?無論我做什麼,我都會嘗試一切,並且我沒有得到正確的輸出(仍然得到雙線效果)。我真正需要知道的是如何去計算合適的閾值。

回答

0

這聽起來像你正在做一些邊緣(境)檢測。墨西哥帽子陣列將在圖像中找到邊緣,但如果邊緣傾斜(邊緣稍寬),則邊緣可能有2條線。但是,每條邊只有一個零交叉。這在matlab中很容易完成。讓我們打電話給你的墨西哥帽子過濾器MHfilt。而不是使用0和255值來選擇點使圖像二進制。這意味着你把所有的值都設置爲低於0.75,其餘的設置爲1.調用該圖像Im並將其饋送給Matlab的邊緣函數。

ImEdge = edge(Im,'zerocross',MHfilt); 

瞭解更多關於邊緣功能here 瞭解更多關於過零點here

我希望這會幫助你有點