當你用手機拍照手畫圖案時,常常會因為採光關係,出現深淺不一色調,如左圖所示。這時若用photoshop之類的影像處理軟體,其提供的單一臨界值調整(threshold adjustment)工具,很難單獨萃取手畫圖案出來。
若會python程式,建議改用opencv套件提供的adaptiveThreshold方法,可自動調整臨界值,萃取手畫圖案。經適當調整參數,發現效果不錯,如右圖所示。其程式寫法如下:
去處圖destin = adaptiveThreshold(src來源圖, maxValue像素最大值, adaptiveMethod自動調整法, thresholdType臨界值套用法, blockSize參考方塊邊長_像素為單位, C方塊內像素加權和扣掉常數值當成臨界值) -- import cv2 import matplotlib.pyplot as plt %matplotlib inline input = 'c:/path/source.jpg' output = 'c:/path/destin.jpg' img = cv2.imread(input,0) img = cv2.medianBlur(img,5) newimg = cv2.adaptiveThreshold(img, 255,\ cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, \ 11, 10) cv2.imwrite( output, newimg )
沒有留言:
張貼留言