原理:简单来说是指将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。
Opencv3.2.0中提供了两种方法实现图像二值化:
(1) Imgproc.threshold(Mat src, Matdst, double thresh, double maxval, int type)
参数说明:
src:输入源图像
dst:输出目标图像
thresh:手动设置的阈值
maxval:和type有关,如果type设置为Imgproc.THRESH_BINARY,则二值化图像像素大于阈值的为maxval。如果type设置为Imgproc.THRESH_BINARY_INV,则小于阈值的为maxval
type:二值类型,决定了该方法的结果
(2) Imgproc.adaptiveThreshold(Mat src, Mat dst, double maxValue, int adaptiveMethod, int thresholdType, intblockSize, double C)
参数说明:
src:输入源图像
dst:输出目标图像
maxval:和thresholdType相关,如果这一参数为 THRESH_BINARY,那么二值化图像像素大于阈值为maxValue,反之参数为THRESH_BINARY_INV,则小于阈值的被赋值为maxValue
adaptiveMethod:使用哪种自适应阈值算法
thresholdType:二值类型
blockSize:对于某个像素,计算其阈值所考虑的阈值范围
C:从均值中减去的一个常数