图像二值化
- 二值图像
- 图像二值化方法
- OpenCV中图像二值化方法
- 超大图像二值化
1.二值图像:
- 0代表黑色,1代表白色
2.图像二值化方法
- 全局阈值
- 局部阈值
3.OpenCV中图像二值化方法
- OTSU
- Triangle
- 自动与手动
说明:
- 当图像直方图中只有一个波峰的时候,cv.THRESH_TRIANGLE效果比较好,当有多个波峰时效果很差,常用于细胞图像处理领域
cv.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C, dst=None)
- cv.ADAPTIVE_THRESH_MEAN_C:把图像分成一个个小的方格,计算出每个方格的均值,然后大于该均值的是白色,小于的是黑色
- cv.ADAPTIVE_THRESH_G_C:求均值时带上高斯权重,这样得到的均值更有效,也就是最中心的权重最大,这样就考虑了像素位置空间因素的影响
- blockSize必须是奇数
- 每个位置的像素值与均值之差大于C,才设白色,否则是黑色,目的是防止局部噪声的影响
# -*- 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