博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV学习之阈值化
阅读量:6093 次
发布时间:2019-06-20

本文共 1183 字,大约阅读时间需要 3 分钟。

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中的一样。

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

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

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

 

转载地址:http://blog.csdn.net/mcgrady_tracy/article/details/7482673

 

转载于:https://www.cnblogs.com/hyz5525/p/5227366.html

你可能感兴趣的文章
第五十七篇、AVAssetReader和AVAssetWrite 对视频进行编码
查看>>
Vivado增量式编译
查看>>
一个很好的幻灯片效果的jquery插件--kinMaxShow
查看>>
微信支付签名配置正确,但返回-1,调不出支付界面(有的手机能调起,有的不能)...
查看>>
第二周例行报告
查看>>
DataTable - the existing record can not be merged,just be added
查看>>
Html5最简单的游戏Demo——Canvas绘图的骰子
查看>>
-bash: mysql: command not found 解决办法
查看>>
MySQL密码过期策略
查看>>
UMDF
查看>>
[置顶] CSS禅意花园——CSS设计的绝美境界
查看>>
Git总结
查看>>
7-21测试
查看>>
周鸿祎:如何成为一名优秀的产品经理?
查看>>
项目使用Entity Framework用到的公共操作方法基类(Repository)及其使用 (转载)
查看>>
《Python 学习手册4th》 第十七章 作用域
查看>>
Python爬虫学习==>第三章:Redis环境配置
查看>>
JS与AS通信-转
查看>>
JS中正则匹配开头不带空格,结尾也不带空格的字符串
查看>>
Maximal Rectangle
查看>>