我正試圖實現Sauvola & Pietaksinen方法通過局部閾值在圖像中執行二值化。 (x,y)= mean(x,y)* [1 + k(std(x,y)/ R-1)]的每個像素(x,y)的閾值,如在arcticle「自適應文檔圖像二值化」中。平均值和標準偏差在(x,y)的鄰域內計算。 k和R分別建議爲0.5和128。在Octave中執行局部閾值時出錯
這是我的代碼如下所示:
filtered = colfilt(image, [n n], "sliding", @(x) (mean(x).*(1+0.5*(std(x)/128 - 1))));
image(image < filtered) = 0;
image(image >= filtered) = 255;
但是,我測試過的所有圖像,結果是一個完全空白的形象,這是顯然是不正確。我認爲我必須濫用colfilt函數中的某些元素,但我在Octave中新手並且直到現在都找不到它。
有人能幫我一下嗎?
在此先感謝。
您是否嘗試過將圖像縮放('imshow(圖像,[])')?我同意@Andy。您不應該覆蓋函數名稱(如圖像)。 – kkuilla 2014-10-20 11:53:17