OpenCV学习之阈值化
2016-02-29 14:25
267 查看
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
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
相关文章推荐
- 浅谈web网站架构演变过程
- Linux搜索文件夹下所有文件中字符串
- linux maven
- sharelatex在centos 6.7 64位上的部署(1)
- Shell变量
- 【转载】CentsOS系统inotify实时监控服务器文件(夹)定制事件处理程序
- 幽默讲解linux的Socket IO模型
- System.getProperty()方法可以获取的值
- 设定cvSetCaptureProperty后取帧不准的问题
- linux shell(1)
- Opencv中的ROI介绍
- ftok()函数深度解析
- 拿webshell权限方法(一)
- 利用XShell上传、下载文件(使用sz与rz命令),超实用!
- zabbix自定义ITEMS,提示not supported
- Hadoop技巧(01):插件,终端权限
- 【转】Linux 下修改Tomcat使用的JVM内存大小
- 类型:linux;问题:linux命令;结果:Linux常用命令大全
- OpenCV进行图像相似度对比的几种办法
- [Linux]Linux下如何查看有多少文件夹,多少子目录