opencv图像二值化

参考
补充一些说明。

(二值化还可以将图像转为HSV进行inrange)
**

固定阈值图像二值化

**
ret, dst = cv2.threshold(src, thresh, maxval, type)
src: 输入图,只能输入单通道图像,通常来说为灰度图
dst: 输出图
thresh: 阈值,大于阈值的像素赋值为maxval,小于阈值的像素赋值为0
maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值
type:二值化操作的类型,包含以下5种类型

  • cv2.THRESH_BINARY(黑白)
  • cv2.THRESH_BINARY_INV(黑白反转)
  • cv2.THRESH_TRUNC(得到的图像为多像素值)
  • cv2.THRESH_TOZERO
  • cv2.THRESH_TOZERO_INV

**

adaptiveThreshold:自适应阈值二值化

**
自适应阈值二值化函数根据图片一小块区域的值来计算对应区域的阈值,从而得到也许更为合适的图片。

dst = cv2.adaptiveThreshold(src, maxval, thresh_type, type, Block Size, C)

src: 输入图,只能输入单通道图像,通常来说为灰度图
dst: 输出图
maxval: 当像素值超过了阈值(或者小于阈值,根据type来决定),所赋予的值
thresh_type: 阈值的计算方法,包含以下2种类型

  • cv2.ADAPTIVE_THRESH_MEAN_C(领域内均值)
  • cv2.ADAPTIVE_THRESH_GAUSSIAN_C(领域内像素点加权和,权重为一个高斯窗口)
    type:二值化操作的类型,与固定阈值函数相同,包含以下5种类型
  • cv2.THRESH_BINARY
  • cv2.THRESH_BINARY_INV
  • cv2.THRESH_TRUNC
  • cv2.THRESH_TOZERO
  • cv2.THRESH_TOZERO_INV
    Block Size: 图片中分块的大小(一个正方形的领域,设置为图像大小,就和全局没差别了)
    C :阈值计算方法中的常数项,阈值等于均值或者加权值减去这个常数(为0相当于阈值 就是求得领域内均值或者加权值)
发布了24 篇原创文章 · 获赞 2 · 访问量 5623

猜你喜欢

转载自blog.csdn.net/qq_36537768/article/details/103057035