1、图像阈值处理
图像阈值,即图像的分割基准,基于此可完成图像的二值化。
利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。
适用于目标与背景灰度有较强对比的情况,重要的是背景或物体的灰度比较单一,而且总可以得到封闭且连通区域的边界。
二值化即大于阈值为255,小于阈值为0的处理。
2、相关函数
double threshold( InputArray src, OutputArray dst,double thresh, double maxval, int type )
int type:
THRESH_BINARY = 0,
THRESH_BINARY_INV = 1, // 反二值化
THRESH_TRUNC = 2, // 大于阈值截断取阈值,其它保留原值
THRESH_TOZERO = 3,// 大于阈值保留原值,其它取0
THRESH_TOZERO_INV = 4,// 大于阈值取0,其它保留原值
THRESH_MASK = 7,
THRESH_OTSU = 8,
THRESH_TRIANGLE = 16
3、代码
void Threshold_Callback(int, void*)
{
Mat destImg;
THRESH_BINARY;
threshold(grayImg, destImg, threshold_value, 200, threshold_type);
imshow("Threshold", destImg);// 显示
}
4、工程项目文件下载
本文工程在Debug–x64下编译通过运行。
ZIP包中包含开发环境,下载解压可直接编译运行。