首页 > 学院 > 编程应用 > 正文

OpenCV--图像二值化处理

2019-11-14 10:44:34
字体:
来源:转载
供稿:网友

使用的是threshold和adaptiveThreshold方法。 官方示例给出了很好的说明

下面说一下个人的理解。

double cv::threshold (InputArray src, OutputArray dst, double thresh, double maxval, int type )
参数 含义
src 输入,要求是单通道图像
thresh 门限值
maxval 超过门限的像素被赋予的新值
type 处理算法类别

type的取值

类型 含义
THRESH_BINARY 超过thresh的像素被设为maxval, 其他被设为0
THRESH_BINARY_INV 相反
THRESH_TRUNC 超过thresh的像素被设为maxval, 其他不变
THRESH_TOZERO 超过thresh的像素不变, 其他设为0
THRESH_TOZERO_INV 相反
THRESH_OTSU flag, use Otsu algorithm to choose the optimal threshold value
THRESH_TRIANGLE flag, use Triangle algorithm to choose the optimal threshold value

THRESH_OTSU和THRESH_TRIANGLE和前面的type可以组合使用,好处是不用自己指定thresh值,系统会进行计算并且作为返回值返回。 THRESH_OTSU文档上说如果图像黑白分明,就可以用这个,我试了一下,用扫描仪扫描的一个带文字的图像,由于没有光照的差异,算是黑白分明的了,用这个参数得到的结果和自己多次调整thresh得到的最优结果几乎是一样的。 THRESH_TRIANGLE在什么情况下用不清楚。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表