python opencv 實現影象的二值圖
阿新 • • 發佈:2019-01-27
我們要將一張圖片首先轉化為灰度圖(或者是單通道的圖)然後才能進行二值化處理
那在opencv裡面有一個函式cv.Threshold(src, dst, threshold, maxValue, thresholdType)可以進行二值化處理 這個直接設定閾值 就可以將大於閾值的置為一 小於的置為零。其實在檔案裡面我們還可以發現另一個函式:
cv.AdaptiveThresholdsrc, dst, maxValue, adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C, thresholdType=CV_THRESH_BINARY, blockSize=3, param1=5→ None
這種函式也是實現二值化 但是他的原理用到了高斯濾波的概念 效果相對來說平滑一些 我利用這個函式得到了想要的結果。部分程式碼如下:
image=cv2.imread('1.png')
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
gra=cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH _BINARY,11,2)
也可以將裡面那兩個很長的引數直接設為一 效果也還不錯!
希望可以幫到你!