2013-10-14 46 views
1

我達到了令人滿意的解決方案,我試圖通過使用imagemagick閾值化圖像然後讓opencv對其執行其他操作來解決該問題。但是,現在我已經達到了令人滿意的解決方案,我試圖擺脫對imagemagick的依賴。使用opencv獲取與imagemagick相同的結果的圖像閾值

我在ImageMagick的閾值處理圖像的方式是

convert image.png -threshold 60% image.png 

我試圖閾值和使用這樣的OpenCV得到相同的結果:

img = cv2.imread(filepath) 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)   
    ret,thresh1 = cv2.threshold(gray,193,255,cv2.THRESH_TOZERO) 

雖然產生的圖像類似於肉眼,我的最終結果是不同的。

有什麼辦法可以像使用-threshold 60%一樣使用opencv獲得相同的輸出嗎?

+0

從哪裏得到'193'?也許是巧合,但是'60%' '255'是'153'(一個可能的錯誤〜'193')。 – Sigur

回答

0

在OpenCV中,THRESH_TOZERO離開超過在原來值的閾值(見here,而在ImageMagick的,超過閾值的值設置爲最大值(here)。

您可能需要使用THRESH_BINARY,而不是模仿ImageMagick的行爲,但您可以瀏覽上面的文檔鏈接中的選項,以查看哪一個適合您的需求。

相關問題