opencv学习笔记(二十)自适应阈值cvAdaptiveThreshold ()

这是一种改进了的阈值技术,其中阈值本身是一个变量。在OpenCV中,这种方法由函数cvAdaptiveThreshold ( ) 来实现。
此函数只能处理单通道8位图像或浮点图像,它要求源图像和目标图像不能使用同一图像。

cvAdaptiveThreshold()

定义:
void cvAdaptiveThreshold(
const CvArr* src,
CvArr* dst,
double max_value,
int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,
int threshold_type=CV_THRESH_BINARY,
int block_size=3,
double param1=5
);
参数:

src
输入图像.

dst
输出图像.

max_value
使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值

adaptive_method
自适应阈值算法使用:CV_ADAPTIVE_THRESH_MEAN_C 或 CV_ADAPTIVE_THRESH_GAUSSIAN_C

threshold_type
取阈值类型:必须是下者之一
CV_THRESH_BINARY,
CV_THRESH_BINARY_INV

block_size
用来计算阈值的象素邻域大小: 3, 5, 7, …

param1
与方法有关的参数。对方法 CV_ADAPTIVE_THRESH_MEAN_C 和 CV_ADAPTIVE_THRESH_GAUSSIAN_C, 它是一个从均值或加权均值提取的常数, 尽管它可以是负数。

cvAdaptiveThreshold()有两种不同的自适应阈值方法,可以用参数adaptive_method进行设置。在这两种情况下,自适应阈值T (x,y)在每个像素点都不同。通过计算像素点周围的b×b区域的加权平均,然后减去一个常数来得到自适应阈值,b由参数block_size指定,常数由param1指定。
如果使用了CV_ADAPTIVE_THRESH_MEAN_C方法,那么对区域的所有像素平均加权。如果使CV_ADAPTIVE_THRESH_GAUSSIAN_C方法,那么区域中的(x,y)周围的像素根据高斯函数按照它们离中心点的距离进行加权计算。
最后,参数threshold_type和上一篇博客所示的cvThreshold()的参数
threshold_type是一样的。

缺点:

实际上这是一个【边缘检测函数】,可以很好地提取边缘。至于二值化么,不要用这个函数。实际上完全就是披着二值化皮的边缘检测函数。

程序实例&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值