阈值化函数:

double cvThreshold(constCvArr* src, CvArr* dst, double threshold, double max_value,int threshold_type)

参数:  

src –原始数组 (单通道 , 8-bit of 32-bit 浮点数)。

dst –输出数组,必须与 src 的类型一致,或者为 8-bit。

thresh –阈值。

max_value –使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值。

threshold_type –对图像取阈值的方法。

threshold_type=CV_THRESH_BINARY:

dst(x,y) = max_value, ifsrc(x,y)>threshold

0, otherwise.

threshold_type=CV_THRESH_BINARY_INV:

dst(x,y) = 0, ifsrc(x,y)>threshold;

dst(x,y) = max_value, otherwise.

threshold_type=CV_THRESH_TRUNC:

dst(x,y) = threshold, ifsrc(x,y)>threshold;

dst(x,y) = src(x,y), otherwise.

threshold_type=CV_THRESH_TOZERO:

dst(x,y) = src(x,y), if(x,y)>threshold ;

dst(x,y) = 0, otherwise.

threshold_type=CV_THRESH_TOZERO_INV:

dst(x,y) = 0, ifsrc(x,y)>threshold ;

dst(x,y) = src(x,y), otherwise.

threshold_type可以使用CV_THRESH_OTSU类型,这样该函数就会使用大律法OTSU得到的全局自适应阈值来进行二值化图片,而参数中的threshold不再起作用。

如:cvThreshold(workImg,workImg,0, 255, CV_THRESH_OTSU|CV_THRESH_BINARY)

自适应阈值函数:

voidcvAdaptiveThreshold( const CvArr* src,  CvArr* dst,   double max_value,  intadaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,
                          intthreshold_type=CV_THRESH_BINARY,   int block_size=3,  double param1=5 );

参数:

src-输入图像.

dst-输出图像.

max_value-使用 CV_THRESH_BINARY 和CV_THRESH_BINARY_INV 的最大值.

adaptive_method-自适应阈值算法使用:CV_ADAPTIVE_THRESH_MEAN_C 或 CV_ADAPTIVE_THRESH_GAUSSIAN_C .

threshold_type-取阈值类型:必须是CV_THRESH_BINARY或者CV_THRESH_BINARY_INV.

block_size-用来计算阈值的象素邻域大小: 3, 5, 7, ...

param1-与方法有关的参数。对方法 CV_ADAPTIVE_THRESH_MEAN_C 和 CV_ADAPTIVE_THRESH_GAUSSIAN_C,

它是一个从均值或加权均值提取的常数,尽管它可以是负数。

对方法 CV_ADAPTIVE_THRESH_MEAN_C,先求出块中的均值,再减掉param1。

对方法 CV_ADAPTIVE_THRESH_GAUSSIAN_C ,先求出块中的加权和(gaussian),再减掉param1。

当block_size比较小的时候,相当于提取边缘。

 

结果对比:



阈值化结果如下:


Otsu结果如下:


自适应阈值结果如下:




OpenCV二值化cvThreshold和自适应二值化cvAdaptiveThreshold及Otsu相关推荐

  1. (保守群组测试 非保守群组测试 二次重复测试 自适应二次重复测试)四种群体测试的C++代码

    目录 原理 保守组检测 非保守组检测 二次重复测试 自适应二次重复测试 四种测试方法的核心代码 保守群组测试 非保守群组测试 二次重复测试与自适应二次重复测试 测试代码 参考文献 原理 假设该病在人群 ...

  2. 数字图像处理,自适应中值滤波的C++实现

    自适应中值滤波的原理 自适应中值滤波的思想是根据噪声密度改变滤波窗口的大小,同时对噪声点和信号点采取不同的处理方法.对噪声点进行中值滤波,对信号点保持其灰度值不变. 设为fij为点(i,j)的灰度值, ...

  3. 自适应中值滤波用于超声图像降噪

    自适应中值滤波原理: RAMF主要通过以下两步来处理图像. 1.首先确定最大的滤波半径,然后用一个合适的半径r对图像进行滤波.计算当前滤波半径像素灰度的Imin,Imax,Imed,然后判断Imed是 ...

  4. 利用python opencv实现图像自适应二值化

    对灰度图像利用阈值得到一个二值化的图像,是常最常用的图像处理技术之一.例如,灰度大于127的图像设置为1.小于127的设置为0,这种处理便是固定阈值127的二值化处理. 自适应的二值化处理不同于固定阈 ...

  5. opencv自适应二值化原理

    opencv自适应二值化原理 先对图像做模糊处理(一般是均值或者高斯模糊).(这里可以加上自己的操作,做一些其他类型的模糊以及一些形态学的操作). 用原图与模糊处理之后的图像做差得到一幅图像. 判断图 ...

  6. 【OpenCV 4开发详解】图像二值化

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  7. 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理

    [OpenCV 例程200篇]37. 图像的灰度化处理和二值化处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 按 ...

  8. input自适应_【正点原子FPGA连载】第十一章基于OV5640的自适应二值化实验-领航者ZYNQ之HLS 开发指南...

    1)摘自[正点原子]领航者ZYNQ之HLS 开发指南 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手 ...

  9. vc++数字图像处理 自适应二值化程序

    这段时间做图像处理,这是用迭代法求阈值的,自适应二值化代码,贴出来希望对大家有帮助 void GrayTrans::Binary() { long i,j; unsigned char pixel; ...

最新文章

  1. Go 分布式学习利器(8)-- Go的函数
  2. 两张图看懂GC 日志
  3. c语言 临时文件作用,c语言函数mktemp()产生唯一临时文件名实例源码介绍
  4. Python中矩阵SVD分解及还原
  5. FastJSON 简介及其Map/JSON/String 互转(转载)
  6. IdentityServer4之Authorization Code(授权码)相对更安全
  7. python学习-1列表实现简单的购物车
  8. genymotion常见问题及解决方案
  9. checkbox选中并记住状态(分页)
  10. Atitit 软件国际化原理与概论
  11. NHibernate N+1问题实例分析和优化
  12. java action上传文件_Java struts Action +ActionForm上传文件
  13. 华为H3CNE认证题库、教材-热门下载帖汇总!
  14. 【预定义】C语言预定义代码(宏、条件编译等)内容介绍【最全的保姆级别教程】
  15. Ubuntu调整默认输入法
  16. uniapp开发app真机调试连接电脑服务器请求失败解决方法
  17. 中秋节活动中奖名单公布啦!!
  18. 使用qq邮箱进行服务器邮件代发
  19. maven 国内源配置
  20. 图像处理QPixmap、Picture、QBitmap

热门文章

  1. 2017 Multi-University Training Contest - Team 3:1004. Kanade's trio(01字典树)
  2. 利用matlab自带函数快速提取二值图像的图像边缘 bwperim函数
  3. 吴恩达神经网络和深度学习-学习笔记-7-正则化regularization方法
  4. quartsu仿真8:二五十计数器74290的基本功能
  5. 如何删除oracle软件,如何用静默方式删除oracle软件
  6. ScheduledThreadPoolExecutor Usage
  7. VMWare workstation Pro 14 For Linux key
  8. struts2实现XML异步交互
  9. 1111---9999的变换
  10. O - Can you find it?