2017-07-22 233 views
0

我有一個包含照明的圖像。首先裁剪我想要處理的區域,然後將其轉換爲二進制圖像。我使用大津的閾值,但它給這個問題的結果不好。我必須嘗試使用​​自適應閾值,但此方法取決於塊大小和C參數(opencv方法)。我該怎麼做才能在這個問題上取得好成績?閾值亮度圖像

原圖,但我裁剪特定區域 Original image, but I crop the certain area

Otsu閾值導致

Otsu Thresholding result

+1

您可以嘗試使用低通濾波器過濾圖像並從原始圖像中減去結果以抑制遠距離「亮度波」。示例:https://stackoverflow.com/questions/44047819/ – MBo

+0

爲什麼要使用Otsu if你只有一個圖像?根本沒有意義。使用手動閾值... – Piglet

+0

@MBo感謝您的回覆。我已經嘗試通過該鏈接,但使用該方法之間沒有顯着差異。我用21x21和medianBlur進行擴張,21用於ksize參數。我錯過了什麼嗎? – Hendra

回答

0

自適應閾值中不適合你的情況。如果您想簡單地創建黑色背景和白色文本的二進制圖像(或反之亦然),並且裁剪區域很緊張,則可以簡單地執行以下步驟:
1-將圖像轉換爲灰度
2-正常化您的圖像(忽略最黑暗和最輕像素的1%)
3使用固定閾值(0.3到0.7之間的某個值)
4做一些形態增強,如腐蝕,擴張,打開和關閉以消除噪音。
自適應閾值處理,用於在您的示例中不存在梯度燈的情況下亮度不均勻的情況。

+0

如果您使用適當的閾值,則不需要標準化或去除噪音。 跳過1%的最亮像素很可能會刪除白色文字。我也會爲此選擇飽和度,因爲對比度更好。您對自適應閾值的評論並不完全正確。他的圖像的主要問題是背景中的各向異性,無法用方塊尺寸進行補償。但我想你可以找到一些工作參數。 考慮到這個單一的形象(他沒有提到其他人)最簡單的方法將使用魔杖在g ... ... – Piglet

+0

那麼,什麼情況下,我應該找那個圖像?以及如何通過忽略1%最暗和最亮的像素來規範圖像?感謝您的回答。 – Hendra

+0

您可以創建直方圖並進行響應,每邊忽略1%的像素,然後將選定範圍(例如11-238)擴展到全範圍(0-255)。在這個例子中,1%的像素值是11或更少,在歸一化之後,所有這些值都變爲0.你可以在網上找到許多關於直方圖和標準化的教程。 – Mokhabadi