OpenCV学习之阈值化

OpenCV中图像阈值处理有两个函数,cvThreshold和cvAdaptiveThreshold。图像处理中可能最重要的一步就是图像的二值化处理,既然需要将图像二之化,那么就不得不使用这两个函数。

1. cvThreshold

函数原型如下:

double cvThreshold( const void* srcarr, void* dstarr, double thresh, double maxval, int type );

srcarr源数组,dstarr为目标数组,thresh为阈值,maxval为欲设最大值,type为阈值处理的类型,有如下几种:

CV_THRESH_BINARY,表示dsti=(srci>T)?M:0。

CV_THRESH_BINARY_INV,表示dsti=(srci>T)?0:M。

CV_THRESH_TRUNC,表示dsti=(srci>T)?M:srci。

CV_THRESH_TOZERO_INV,表示dsti=(srci>T)?0:srci。

CV_THRESH_TOZERO,表示dsti=(srci>T)?srci:0。

可能这样还是不能直观的看出我们实际使用中到底选择哪一种类型,不要着急:

最上面的一个图是将要被阈值处理值和阈值图,下面5个就是前面的阈值处理的类型。

2. cvAdaptiveThreshold

函数原型如下:

void cvAdaptiveThreshold( const void *srcIm, void *dstIm, double maxValue, int method, int type, int blockSize, double delta );

这个函数同上面那个函数不同的是,上面那个函数需要给出阈值,而这个函数的阈值是不要指定的,它是通过一定计算得来的,称之为自适应阈值处理。

前两个参数同cvThreshold的前两个参数一样,你甚至可以看到OpenCV中绝大多数函数的前两个参数都是这样的,第一个为源,第二个为目标。

第三个参数含义也和cvThreshold中的一样。

第四个参数有两种取值:ADAPTIVE_THRESH_MEAN_C和ADAPTIVE_THRESH_GAUSSIAN_C,分别表示对区域内像素采用均值处理和高斯加权处理。

第五个参数也和cvThreshold中的一样。

第六个参数表示区域大小。

最后一个参数是一个定值。

自适应阈值它是计算区域内的一个值减去一个定值作为阈值,所以说它的阈值是动态计算的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
OpenCV是一个广泛用于计算机视觉和机器学习的开源库,其中包含许多图像处理功能,包括阈值阈值是将一幅灰度或彩色图像转换成二值图像的过程,主要是为了简图像,突出感兴趣的区域,便于进一步分析。 在OpenCV中,你可以使用`cv.threshold()`函数来进行阈值操作。这个函数的基本语法如下: ```python threshold(src, dst, threshold_value, maxval, type) ``` 参数解释: - `src`: 输入的图像数据(通常是灰度或单通道彩色图像)。 - `dst`: 输出的阈值结果图像。 - `threshold_value`: 阈值值,通常为0(如果设置为0,函数会选择适当的内部阈值)。 - `maxval`: 输出值的最大值(对于二值,这通常为255,0表示背景,255表示前景)。 - `type`: 阈值类型,常见的有以下几个: - `cv.THRESH_BINARY`: 黑白阈值(大于阈值的部分设为最大值,否则设为0)。 - `cv.THRESH_BINARY_INV`: 反相黑白阈值(大于阈值的部分设为0,否则设为最大值)。 - `cv.THRESH_TRUNC`: 剪切,超出阈值部分被截断到最大值。 - `cv.THRESH_TOZERO` 和 `cv.THRESH_TOZERO_INV`: 分别将小于阈值的部分设为0,大于等于阈值的部分保持不变;反之亦然。 使用这个函数后,你可以根据不同的阈值类型和应用场景调整图像内容,以便于后续的任务如边缘检测、物体分割等。如果你有具体的需求或遇到问题,可以提出相关的问题,我会帮助解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_72431373

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值