python opencv 实现图像的二值图

我们要将一张图片首先转化为灰度图(或者是单通道的图)然后才能进行二值化处理

那在opencv里面有一个函数cv.Threshold(src, dst, threshold, maxValue, thresholdType) 可以进行二值化处理  这个直接设定阈值 就可以将大于阈值的置为一 小于的置为零。其实在文件里面我们还可以发现另一个函数:

cv.AdaptiveThreshold(src, 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)

也可以将里面那两个很长的参数直接设为一 效果也还不错!


希望可以帮到你!

你可能感兴趣的:(python opencv 实现图像的二值图)