阈值分割
cv.threshold(src, thresh, maxval, type, dst=None)
src:原图
thresh:阈值
maxval:当type指定为THRESH_BINARY或THRESH_BINARY_INV时,需要设置该值;
type:不同类型的阈值
类型 | 条件 | 选中阈值区间 |
THRESH_BINARY | if src(x,y) > thresh dst(x,y) = maxValue else dst(x,y) = 0 | thresh<= dst(x,y)<maxValue |
THRESH_BINARY_INV | if src(x,y) > thresh dst(x,y) = 0 else dst(x,y) = maxValue | dst(x,y)<thresh or dst(x,y)>maxValue |
THRESH_TRUNC | if src(x,y) > thresh dst(x,y) = thresh else dst(x,y) =src(x,y) | 大于thresh的设置为thresh,小于的不变 |
THRESH_TOZERO | if src(x,y) > thresh dst(x,y) = src(x,y) else dst(x,y) =0 | 大于thresh的不变,小于的设置为0 |
THRESH_TOZERO_INV | if src(x,y) > thresh dst(x,y) = 0 else dst(x,y) =src(x,y) | 大于thresh的设置为0,小于的不变 |
输出:有两个结果输出,第一个是使用的阈值,第二个是应用阈值后的图像
自动阈值分割
cv.adaptiveThreshold(src,maxValue,adaptiveMethod,thresholdType,blockSize,C)
src | 输入灰度图像 |
maxValue | 阈值最大值 |
adaptiveMethod | 指定阈值计算方式(ADAPTIVE_THRESH_MEAN_C:阈值是邻近区域的平均值减去一个常数,ADAPTIVE_THRESH_GAUSSIAN_C:阈值是邻域值的高斯加权总和减去一个常数) |
thresholdType | 不同类型的阈值 |
blockSize | 邻域大小 |
C | 一个常熟,阈值等于平均值或加权平均值减去一个常数 |
高斯滤波
GaussianBlur(src,ksize,sigmaX)
src | 输入图像 |
ksize | 高斯滤波模版大小 |
sigmaX | x方向上的标准差(标准差对结果的影响:调大标准差即提高了远处像素对中心像素的影响,标准差越大,曲线越平滑) |
低通滤波器(LPF)
有助于消除噪音,是图像模糊
高通滤波器(HPF)
有助于在图像中找到边缘