OpenCV学习之阈值化

转载 2013年12月02日 17:15:10

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

Opencv学习之阈值化处理

阈值可以被视作最简单的图像分割方法这样的图像分割方法基于图像中物体与背景之间的灰度差异,而且此分割属于像素级的分割。固定阈值操作–threshold()函数–单通道数组double threshold...
  • qq_31531635
  • qq_31531635
  • 2017年06月17日 13:43
  • 314

opencv学习之图像阈值化

为了从一副图像中提取出我们需要的部分,应该用图像中的每一个像素点的灰度值与选取的阈值进行比较,并作出相应的判断。(注意:阈值的选取依赖于具体的问题。即:物体在不同的图像中有可能会有不同的灰度值。一旦找...
  • OliverkingLi
  • OliverkingLi
  • 2017年01月10日 10:38
  • 272

Opencv学习——图像阈值化

图像阈值化是最常用的图像处理方法,在很多领域应用广泛,机器视觉中产品的识别和定位中往往需要采用阈值处理使产品的特征更加明显,易于后续的处理。 本文主要介绍两种阈值处理方法即全局阈值化和局部阈值化。...
  • Dangkie
  • Dangkie
  • 2017年06月04日 18:34
  • 220

openCV学习笔记(8)-- 图像阈值化

图像阈值化:在对图像进行操作时,希望能对一些低于和高于一定值的像素进行操作。opencv的cvThreshold()可以完成某些任务。double cvThreshold( CvArr* src, ...
  • superjimmy
  • superjimmy
  • 2011年02月17日 08:54
  • 6245

OpenCV图像的阈值化

图像阈值化的基本思想是,给定一个数组和一个阈值,然后根据数组中每个元素是低于还是高于阈值而进行一些处理。cvThreshold()函数如下:double cvThreshold(CvArr* src,...
  • Augusdi
  • Augusdi
  • 2013年09月10日 14:24
  • 5526

OpenCV学习笔记-阈值化

需要的几个函数:Threshold對數組元素進行固定閾值操作void cvThreshold( const CvArr* src, CvArr* dst, double threshold, ...
  • superdont
  • superdont
  • 2011年08月05日 09:09
  • 7930

实用计算机视觉 -- 各种阈值化效果

本实验主要基于OpenCV来测试各种阈值化后效果,主要验证最优阈值化、大津阈值化和自适应阈值化,并进行带通阈值化和半阈值化的测试,测试图片如下: 灰度图片和RGB彩色图片的直方图效果分别如下...
  • sky_in_my_mind
  • sky_in_my_mind
  • 2017年05月28日 20:15
  • 356

“对图像进行阀值化处理”是什么意思?

“对图像进行阀值化处理”是什么意思?阀值化处理就是当灰度值低于一个值(阀值,根据你的需要设定)时,让其成为一个小的值;当灰度值大于一个值(阀值)时,让其成为一个大的值. 比如:灰度在0-255, ...
  • shandianling
  • shandianling
  • 2011年05月23日 14:42
  • 4418

opencv-阈值化处理

原理摘自:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/threshold/threshold.html ...
  • h_wlyfw
  • h_wlyfw
  • 2014年06月25日 19:41
  • 3118

Opencv学习笔记-----图像阈值化处理

一、OTSU阈值化处理(非API实现) OTSU又称大津算法,是nobuyuki otsu于1979年提出的一种寻找图像阈值的最大类间方差算法。 OTSU算法的步骤如下:          (1)、统...
  • ycj9090900
  • ycj9090900
  • 2016年11月27日 00:20
  • 301
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCV学习之阈值化
举报原因:
原因补充:

(最多只允许输入30个字)