【OpenCV学习笔记】4.阈值分割

  • 阈值分割是一种基于区域的、简单的通过灰度信息提取形状的技术,实现简单、计算量小、性能稳定,因此应用广泛。阈值分割后的输出图像只有两种灰度值:255和0,因此阈值分割处理又被称为图像二值化。

1.方法概述

  • 全局阈值分割
    全局阈值分割是将灰度值大于thresh(阈值)的像素设为白色,小于或者等于thresh的像素设为黑色;或者反过来。
    假设输入图像为 I I I,高为 H H H,宽为 W W W I ( r , c ) I(r,c) I(r,c)代表 I I I的第 r r r行第 c c c列的灰度值, 0 ≤ r < H , 0 ≤ c < W , 0 \leq r<H,0\leq c<W, 0r<H,0c<W,全局阈值处理后的输出图像为 O O O,则:
    O ( r , c ) = { 255 , I ( r , c ) > t h r e s h 0 , I ( r , c ) ≤ t h r e s h O(r,c)= \begin{cases}255,&I(r,c)>thresh\\ 0,&I(r,c)\leq thresh \end{cases} O(r,c)={ 255,0,I(r,c)>threshI(r,c)thresh
    或者
    O ( r , c ) = { 0 , I ( r , c ) > t h r e s h 255 , I ( r , c ) ≤ t h r e s h O(r,c)= \begin{cases}0,&I(r,c)>thresh\\ 255,&I(r,c)\leq thresh \end{cases} O(r,c)={ 0,255,I(r,c)>threshI(r,c)thresh
threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)
//src-输入矩阵,数据类型为CV_8U或者CV_32F
//dst-输出矩阵
//thresh-阈值
//maxval-图像二值化时,一般为255
//type-类型

当type=THRESH_BINARY,
d s t ( r , c ) = { m a x v a l , s r c ( r , c ) > t h r e s h 0 , s r c ( r , c ) ≤ t h r e s h dst(r,c)= \begin{cases}maxval,&src(r,c)>thresh\\ 0,&src(r,c)\leq thresh \end{cases} dst(r,c)={ maxval,0,src(r,c)>threshsrc(r,c)thresh
当type=THRESH_BINARY_INV,
d s t ( r , c ) = { 0 , s r c ( r , c ) > t h r e s h m a x v a l , s r c ( r , c ) ≤ t h r e s h dst(r,c)= \begin{cases}0,&src(r,c)>thresh\\ maxval,&src(r,c)\leq thresh \end{cases} dst(r,c)={ 0,maxval,src(r,c)>threshsrc(r,c)thresh
当type为THRESH_OTSU或THRESH_TRIANGLE时,src只支持uchar类型,此时thresh作为输出参数,即通过Otsu和TRIANGLE算法自动计算。

//examples:
threshold(src, dst, 150, 255, THRESH_BINARY);
triThe = threshold(src, dst_tri, 0, 255, THRESH_TRIANGLE+THRESH_BINARY);

手动设置阈值效果不是很好,直方图技术法、Otsu算法、熵算法是比较流行的自动选取全局阈值的算法。

  • 局部阈值分割
    在有些情况下,如光照不均,全局阈值分割效果不理想,使用局部阈值(自适应阈值)可以产生较好的效果。
    O ( r , c ) = { 255 , I ( r , c ) > t h r e s h ( r , c ) 0 , I ( r , c ) ≤ t h r e s h ( r , c ) O(r,c)= \begin{cases}255,&I(r,c)>thresh(r,c)\\ 0,&I(r,c)\leq thresh(r,c) \end{cases} O(r,c)={ 255,0,I(r,c)>thresh(r,c)I(r,c)thresh(r,c)
    或者
    O ( r , c ) = { 0 , I ( r , c ) > t h r e s h ( r , c ) 255 , I ( r , c ) ≤ t h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值