opencv之图像二值化处理

opencv二值化操作分为:全局阈值和局部阈值两种。在进行图像二值化之前需要对图片进行灰度处理。

全局阈值

全局阈值分为:手动阈值和自动阈值两种。

手动阈值
opencv函数:

threshold(gray_src, dst, threshold_value, threshold_max,THRESH_BINARY);
//原图,目标图,已知阈值(用于比较的阈值),阈值最大值,阈值类型(threshold()函数支持的对图像取阈值的方法由其确定)

该函数对图像取阈值的方法有5种:

  • THRESH_BINARY:过门限的值为最大值,其他值为0
    在这里插入图片描述

  • THRESH_BINARY_INV:过门限的值为0,其他值为最大值
    在这里插入图片描述

  • THRESH_TRUNC:过门限的值为门限值,其他值不变
    在这里插入图片描述

  • THRESH_TOZERO:过门限的值不变,其他设置为0
    在这里插入图片描述

  • THRESH_TOZERO_INV:过门限的值为0,其他不变
    在这里插入图片描述
    自动阈值
    自动阈值分为大津法三角形算法两种:

  • 大津法
    opencv函数:
threshold(gray_src,dst,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU)
  • 三角形算法
    opencv函数:
threshold(gray_src,dst,0,255,cv.THRESH_BINARY | cv.THRESH_TRIANGLE)

局部阈值(自适应阈值)

计算局部阈值中方法有两种::mean_c 和 guassian_c

  • ADAPTIVE_THRESH_MEAN_C
    opencv函数:
adaptiveThreshold(gray_src, dst, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 57, 5);
  • ADAPTIVE_THRESH_GAUSSIAN_C
    opencv函数:
adaptiveThreshold(gray_src, dst, cv.ADAPTIVE_THRESH_GAUSSIAN_C, cv.THRESH_BINARY, 25, 10)

你可能感兴趣的