在图像阈值化操作中,我们更关心的是从二值化图像中分离目标区域背景区域,仅仅通过设定固定阈值很难达到理想的分割效果。在实践应用中,目标及背景区域通常相互依存在图像块中,我们可以通过图像像素领域快的分布特征来自适应确定阈值的二值化阈值。对于图像块中亮度变化明显的区域,自适应阈值通常会设置的比较大或者比较小,进而保证图像中各个像素的阈值会随着周围领域的变化而变化。
opencv中提供了自适应阈值化函数adaptiveThreshold,该函数有两种自适应阈值化类型参数可供选择,用来对当前像素点与领域像素块进行阈值计算。
void adaptiveThreshold(InoutArray src, OutputArray dst, double maxVal, int adaptiveMethod, int thresholdType, int blockSize, double C
)
实现图像的自适应阈值化操作。参数src表示源图像数组(单通道8位图像)。参数dst表示输出图像组(与输入图像同样的尺寸和类型)。参数maxVal表示预示满足条件的最大值。参数
adaptiveMethod表示自适应阈值算法选择ADAPTIVE_THRESHOLD_MEAN_C或者ADAPTIVE_THRESHOLD_GAUSSIAN_C。参数
thresholdType表示阈值类型THRESHOLD_BINARY和THRESHOLD_BINARY_INV。参数
blockSize表示领域块的大小,用来计算区域阈值,一般选择3、5、7............。参数C表示常数,它是一个从均值或者加权均值提取的常数,可以是负数。
代码如下:
-
#include "opencv2/highgui/highgui.hpp" -
#include "opencv2/imgproc/imgproc.hpp" -
#include "opencv2/opencv.hpp" -
#include "opencv2/core/core.hpp" -
#include <stdio.h> -
#include <string> -

本文介绍了如何使用OpenCV库中的自适应阈值方法对图像进行处理。通过代码示例,展示了该技术在图像二值化中的应用,适用于复杂光照条件下的图像分割和增强。
最低0.47元/天 解锁文章
1150

被折叠的 条评论
为什么被折叠?



