【OpenCV + Python】图像阈值
additional tips:
1.cv.threshold()相较于cv.adaptive thresholding(),在遇到一张图亮度不同的情况下,效果不行。你可以用一张纸写个一段话,然后拍照的时候故意制造一部分阴影,结果的图片可能在阴影部分全部变成黑的。cv.threshold()还是比较适合灰度直方图呈现二峰特征的图片。
# coding=UTF-8
import cv2 as cv
import numpy as np
def threshold_demo(image):
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
print("threshold value=%s"%ret)
cv.namedWindow("binary",cv.WINDOW_NORMAL)
cv.imshow("binary",binary)
def local_threshold(image):
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
binary = cv.adaptiveThreshold(gray,255,cv.ADAPTIVE_THRESH_GAUSSIAN_C,cv.THRESH_BINARY,11,10)
cv.namedWindow("binary",cv.WINDOW_NORMAL)
cv.imshow("binary",binary)
scr = cv.imread("hand_writing2.jpg")
threshold_demo(scr)
cv.waitKey(0)
cv.destroyAllWindows()
把自己的代码贴一下。