opencv提供函数:
#自适应阈值
import sys,cv2,math
import numpy as np
import matplotlib.pyplot as plt
def adaptiveThresh(I,winSize,ratio=0.15):
#均值平滑
I_mean = cv2.boxFilter(I,cv2.CV_32FC1,winSize)
out = I - (1.0-ratio)*I_mean
out[out>=0] = 255
out[out<0] = 0
out = out.astype(np.uint8)
return out
if __name__ =='__main__':
src = cv2.imread('E:/sy2/6/image3.png',cv2.IMREAD_GRAYSCALE)
ra = adaptiveThresh(src,(7,7))
print(ra)
cv2.imshow('ra',ra)
cv2.waitKey(0)
cv2.destroyAllWindows()