• 图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果;
  • 二值化一般是提取轮廓的准备工作;
  • 二值化处理之后,图像只有0或255,变成黑白图像。

OpenCV中有全局二值化和局部二值化,全局二值化对光线敏感,局部二值化可以克服光线的影响

全局二值化

double threshold( InputArray src,//src输入数组(多通道,8位或32位浮点)。OutputArray dst,//dst输出数组的大小和类型与src相同,通道数相同。double thresh, //二值化阈值,阈值两端的分别置为0、255double maxval, //与#THRESH_BINARY=0和#THRESH_BINARY_INV=1一起使用的maxval最大值类型。(8位图像为255)int type //二值化类型);

全局二值化类型(第五个参数type):

 CV_THRESH_BINARY      =0,  /**值大于阈值置为最大值,否则为0*/CV_THRESH_BINARY_INV  =1,  /**值大于阈值置为0,否则为最大值*/CV_THRESH_TRUNC       =2,  /**值大于阈值置为阈值,否则不变*/CV_THRESH_TOZERO      =3,  /**值大于阈值不变,否则置为0*/CV_THRESH_TOZERO_INV  =4,  /**值大于阈值置为0,否则不变*/CV_THRESH_OTSU        =8, /**<利用大津法自动选择最优阈值;将标志与上述CV_THRESH_x值之一组合 */CV_THRESH_TRIANGLE    =16  /**采用三角形算法选择最优阈值;将标志与上述CV_THRESH_x值之一组合,但不能用CV_THRESH_OTSU*/

大津法和三角形算法都是根据图像自动指定最优阈值的算法,不需要人工指定阈值,常用OTSU,减少图像亮度、对比度的影响。

采用大津法自动确定阈值的全局二值化效果:

threshold(inputImg,outImg,100,255,CV_THRESH_OTSU);

局部二值化

void adaptiveThreshold( InputArray src, //src输入数组(多通道,8位或32位浮点)。OutputArray dst,//dst输出数组的大小和类型与src相同,通道数相同。double maxValue, //分配给满足条件的像素的maxValue非零值int adaptiveMethod,//adaptiveMethod要使用的自适应阈值算法int thresholdType, //thresholdType阈值类型,必须是#THRESH_BINARY或#THRESH_BINARY_INVint blockSize, //用于计算阈值的像素邻域的块大小,只能是单数double C //);

自适应阈值化计算大概过程是为每一个象素点单独计算的阈值,即每个像素点的阈值都是不同的,就是将该像素点周围blockSize*blockSize区域内的像素加权平均,然后减去一个常数C,从而得到该点的阈值

自适应阈值算法(第四个参数):

 CV_ADAPTIVE_THRESH_MEAN_C  =0,//为局部邻域块的平均值,该算法是先求出块中的均值,再减去常数CCV_ADAPTIVE_THRESH_GAUSSIAN_C  =1//为局部邻域块的高斯加权和。该算法是在区域中(x, y)周围的像素根据高斯函数按照他们离中心点的距离进行加权计算,再减去常数C。

阈值类型(第五个参数)与全局二值化相同。

采用高斯函数求加权平均的局部二值化效果:

    adaptiveThreshold(inputImg,outImg,255,CV_ADAPTIVE_THRESH_GAUSSIAN_C,CV_THRESH_BINARY,15,10);//局部二值化处理

OpenCV--二值化相关推荐

  1. python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例

    python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...

  2. opencv二值化找轮廓检测背景简单小物体

    一.前言 本篇主要是针对背景简单,且具有固定颜色的单类小物体,方法为在灰度化时选用图片的HSV中的S通道,再使用opencv 二值化找轮廓大法可将小物体框出. 原理很简单,图片->取S通道灰度化 ...

  3. python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...

    python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...

  4. opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法

    一.引言 在<OpenCV阈值处理函数threshold处理32位彩色图像的案例>介绍了threshold 函数,但threshold 的图像阈值处理对于某些光照不均的图像,这种全局阈值分 ...

  5. OpenCV二值化方法

    cvThreshold是opencv库中的一个函数 作用:函数 cvThreshold 对单通道数组应用固定阈值操作.该函数的典型应用是对灰度图像进行阈值操作得到二值图像.(cvCmpS 也可以达到此 ...

  6. OpenCV+MFC学习笔记(二):OpenCV二值化处理图像并在Picture Control中并自适应显示

    在前面我们已经完成通过OpenCV读取图片在Picture Control中并自适应显示.下面我们很自然的需要对读取的图片进行处理,处理完之后很自然的想到要看看效果.所以今天的笔记是通过OpenCV灰 ...

  7. python + opencv + 二值化处理图片数据集(三种方法)

    二值化处理图片数据集 首先导入相应的包 cv2即opencv-python包 if __name__ == "__main__": 上面这一句话的含义: 自己的 .py 可以作为自 ...

  8. opencv 二值化 python_Python OpenCV 图像二值化-阈值分割

    1.二值化处理 # 手动二值化处理 # 设置阈值大小 threshold thresh = 125 # 设置超过阈值像素值的最大值 maxval = 255 # THRESH_BINARY:超过阈值为 ...

  9. python:opencv 二值化处理

    1:二值化处理 https://blog.csdn.net/zj360202/article/details/79165796 定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是 ...

  10. OpenCV二值化cvThreshold和自适应二值化cvAdaptiveThreshold及Otsu

    阈值化函数: double cvThreshold(constCvArr* src, CvArr* dst, double threshold, double max_value,int thresh ...

最新文章

  1. 实操教程|Pytorch常用损失函数拆解
  2. tar: Cowardly refusing to create an empty archive 问题
  3. 最新县及县以上行政区划代码(截止2010年12月31日)
  4. hdoj Last non-zero Digit in N! 【数论】
  5. 何时查询2021高考成绩长春市,2020年吉林长春成人高考成绩查询入口(已开通)...
  6. XMind助你快速解决问题
  7. Servlet(JSP)中动态生成JPG PNG透明 水印图像
  8. (转)MapReduce中的两表join几种方案简介
  9. 【大宝的犀牛】飞利浦RQ370剃须刀建模教程
  10. 测试计划工作的目的是什么?
  11. 第三方对接-云存储-最新亚马逊Amazon云AWS S3服务JAVA上传图片,访问图片教程(API版本2.14.22)
  12. 夜曲歌词 拼音_《夜曲》的歌词 - 歌手:周杰伦 (Jay Chou)
  13. python画笑脸表情_用Matplotlib,妈妈再也不担心我没有表情包斗图了
  14. 我能使用这台计算机吗英语,使用电脑的英语怎么说
  15. C - 1111gal password
  16. 编译原理 最新版 (龙书) 简介and sources
  17. freecommander 快捷键列表 zz
  18. 缓解 WPF 应用程序中的空域问题
  19. 用python画一个汉字_python使用reportlab画图示例(含中文汉字)
  20. 输入圆形半径,求圆形的周长和圆形的面积,并将结果输出

热门文章

  1. 李宏毅:1天搞懂深度学习,我总结了 300 页 PPT(附思维导图PPT)
  2. 运行CATIA2018主程序setup.exe时,报错setup:Problem with VC11 Runtime installation
  3. 网易云音乐虚化图片html,网易云音乐怎么换背景 背景图片设置方法
  4. 深入理解JVM虚拟机(总结篇)
  5. js 正则表达式 判断车牌号
  6. JS动态加载JSON文件并读取数据
  7. CentOS配置国内(阿里云)镜像加速器
  8. Java基础练习题(一维数组)
  9. Adobe公司和谷歌公司共同开发的字体-思源黑体提供下载
  10. Android adb重启手机