2013-01-25 35 views
2

這是原始圖像。如何用Matlab中的白色替換邊界?

enter image description here

我改變成1)灰度級和應用2)的閾值。

從原圖中可以看出,應用上面兩種方法後仍然存在一些陰影。

但是大多數圖像在2種方法後都是完美的。

enter image description here

我需要提取文本,所以我需要擺脫噪音。我幾乎完成了這項工作,但問題是有些案件有黑色邊框,我想將其替換成白色。

而且我堅持,我想僅僅只邊框變成白色

我想創造一些白色矩形並填充與矩形邊界,但我不知道該怎麼做。

如何使用Matlab實現該功能? 任何其他方法也將不勝感激!

+0

我試圖理解形態操作,但它似乎對我來說很複雜。相反,我只想創建白色矩形框並填充黑色邊框。 – Krit

回答

1

如果您確定只有邊框是黑色的,爲什麼不簡單地裁剪圖像,直到所有孤立的形狀都是可識別的字符?沿着東西的

done = false; 
ii = 1; 
while (~done) 

    % fill the outer border 
    img(:,ii)  = 255; img(ii,:)  = 255; 
    img(:,end-ii+1) = 255; img(end-ii+1,:) = 255; 

    % (run your algorithms here. It positive match, done = true) 

end 

行這可能是計算密集型的,因爲你必須做在每次迭代模式識別,但表示它只能發生在「某些情況下」。

否則,我懷疑一些morphological operation也可以使用,可能會侵蝕或變薄或類似。但是這有改變你想要匹配的字符的缺點。但是,如果你必須處理的所有圖像看起來像你展示的那樣,我幾乎不會懷疑這會給你帶來任何問題。

this question中提到了檢測直線的一些方法。我會說你可以檢測所有線條,並刪除其中一條邊上完全水平/垂直的線條(周圍有一個小公差)。

+0

關於如何創建白色矩形並填充黑色邊框,您有任何建議嗎?我認爲這是更簡單的方法,但我不知道它是否會工作。 – Krit

+0

@KritHoonsuwan:看我的編輯 –

+0

我完全不理解代碼,但它似乎奏效。但如何增加線的大小? – Krit