当前位置:   article > 正文

OpenCV图像处理——阈值处理/二值化(python实现和c++实现)_opencv 二值化 c++

opencv 二值化 c++

OpenCV图像处理——阈值处理/二值化

5.1 简介

阈值处理是指剔除图像内像素值高于阈值或者低于阈值得像素点。例如,设定阈值为127,将图像内所有像素值大于127的像素点的值设为255;将图像内所有像素值小于127的像素点的值设为0。

图像阈值化分割是一种传统的最常用的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术。它特别适用于目标和背景占据不同灰度级范围的图像。它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域不具有这种一致属性。这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。

5.2 学习目标

  • 了解阈值分割基本概念

  • 理解最大类间方差法(大津法)、自适应阈值分割的原理

  • 掌握OpenCV框架下上述阈值分割算法API的使用

5.3 内容介绍

1、阈值处理

2、最大类间方差法的原理

3、自适应阈值处理

4、OpenCV代码实践

5.4 算法理论介绍

5.4.1 阈值处理

threshold函数

OpenCV使用threshold函数实现阈值化处理。

double cv::threshold ( InputArray src,
                       OutputArray dst,
                       double thresh,
                       double maxval,
                       int type )  
  • 1
  • 2
  • 3
  • 4

参数:

  • src — 原图像,8或32位浮点类型的Mat。
  • dst — 输出图像,与原始图像具有相同大小和类型。
  • thresh — 要设定的阈值
  • maxval — 当type为THRESH_BINARY或者THRESH_BINARY_INV时,设定的最大值
  • type — 阈值分割的类型
    • THRESH_BINARY;二值化阈值处理:灰度值大于阈值的点,将其灰度值设定为最大值,灰度值小于或等于阈值的点,将其灰度值设定为0
    • THRESH_BINARY_INV;反二值化阈值处理:灰度值大于阈值的点,将其灰度值设定为0,灰度值小于或等于阈值的点,将其灰度值设定为最大值
    • THRESH_TRUNC;截断阈值化处理:灰度值大于阈值的点,将其灰度值设定为阈值,灰度值小于或等于阈值的点,其灰度值保持不变
    • THRESH_TOZERO;低阈值零处理:灰度值大于阈值的点,其灰度值保持不变,灰度值小于或等于阈值的点,将其灰度值设定为0
    • THRESH_TOZERO_INV;高阈值零处理:灰度值大于阈值的点,将其灰度值设定为0,灰度值小于或等于阈值的点,其灰度值保持不变

如下表:

类型 定义
THRESH_BINARY d s t ( x , y ) = { m a x v a l , s r c ( x , y ) > t h r e s h 0 , o t h e r dst(x,y)=\left\{
maxval,src(x,y)>thresh0,other
\right.
dst(x,y)={ maxval,0,src(x,y)>threshother
THRESH_BINARY_INV d s t ( x , y ) = { 0 , s r c ( x , y ) > t h r e s h m a x v a l , o t h e r dst(x,y)=\left\{
0,src(x,y)>threshmaxval,other
\right.
dst(x,y)={ 0,maxval,src(x,y)>threshother
THRESH_TRUNC d s t ( x , y ) = { t h r e s h , s r c ( x , y ) > t h r e s h s r c ( x , y ) , o t h e r dst(x,y)=\left\{
thresh,src(x,y)>threshsrc(x,y),other
\right.
dst(x,y)={ thresh,src(x,y),src(x,y)>threshother
THRESH_TOZERO_INV d s t ( x , y ) = { 0 , s r c ( x , y ) > t h r e s h s r c ( x , y ) , o t h e r dst(x,y)=\left\{
0,src(x,y)>threshsrc(x,y),other
\right.
dst(x,y)={ 0,src(x,y),src(x,y)>threshother
THRESH_TOZERO d s t ( x , y ) = { s r c ( x , y ) , s r c
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/77506
推荐阅读
相关标签
  

闽ICP备14008679号