OpenCV二值化cvThreshold和自适应二值化cvAdaptiveThreshold及Otsu
阈值化函数:
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相关推荐
- (保守群组测试 非保守群组测试 二次重复测试 自适应二次重复测试)四种群体测试的C++代码
目录 原理 保守组检测 非保守组检测 二次重复测试 自适应二次重复测试 四种测试方法的核心代码 保守群组测试 非保守群组测试 二次重复测试与自适应二次重复测试 测试代码 参考文献 原理 假设该病在人群 ...
- 数字图像处理,自适应中值滤波的C++实现
自适应中值滤波的原理 自适应中值滤波的思想是根据噪声密度改变滤波窗口的大小,同时对噪声点和信号点采取不同的处理方法.对噪声点进行中值滤波,对信号点保持其灰度值不变. 设为fij为点(i,j)的灰度值, ...
- 自适应中值滤波用于超声图像降噪
自适应中值滤波原理: RAMF主要通过以下两步来处理图像. 1.首先确定最大的滤波半径,然后用一个合适的半径r对图像进行滤波.计算当前滤波半径像素灰度的Imin,Imax,Imed,然后判断Imed是 ...
- 利用python opencv实现图像自适应二值化
对灰度图像利用阈值得到一个二值化的图像,是常最常用的图像处理技术之一.例如,灰度大于127的图像设置为1.小于127的设置为0,这种处理便是固定阈值127的二值化处理. 自适应的二值化处理不同于固定阈 ...
- opencv自适应二值化原理
opencv自适应二值化原理 先对图像做模糊处理(一般是均值或者高斯模糊).(这里可以加上自己的操作,做一些其他类型的模糊以及一些形态学的操作). 用原图与模糊处理之后的图像做差得到一幅图像. 判断图 ...
- 【OpenCV 4开发详解】图像二值化
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
- 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理
[OpenCV 例程200篇]37. 图像的灰度化处理和二值化处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 按 ...
- input自适应_【正点原子FPGA连载】第十一章基于OV5640的自适应二值化实验-领航者ZYNQ之HLS 开发指南...
1)摘自[正点原子]领航者ZYNQ之HLS 开发指南 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手 ...
- vc++数字图像处理 自适应二值化程序
这段时间做图像处理,这是用迭代法求阈值的,自适应二值化代码,贴出来希望对大家有帮助 void GrayTrans::Binary() { long i,j; unsigned char pixel; ...
最新文章
- Go 分布式学习利器(8)-- Go的函数
- 两张图看懂GC 日志
- c语言 临时文件作用,c语言函数mktemp()产生唯一临时文件名实例源码介绍
- Python中矩阵SVD分解及还原
- FastJSON 简介及其Map/JSON/String 互转(转载)
- IdentityServer4之Authorization Code(授权码)相对更安全
- python学习-1列表实现简单的购物车
- genymotion常见问题及解决方案
- checkbox选中并记住状态(分页)
- Atitit 软件国际化原理与概论
- NHibernate N+1问题实例分析和优化
- java action上传文件_Java struts Action +ActionForm上传文件
- 华为H3CNE认证题库、教材-热门下载帖汇总!
- 【预定义】C语言预定义代码(宏、条件编译等)内容介绍【最全的保姆级别教程】
- Ubuntu调整默认输入法
- uniapp开发app真机调试连接电脑服务器请求失败解决方法
- 中秋节活动中奖名单公布啦!!
- 使用qq邮箱进行服务器邮件代发
- maven 国内源配置
- 图像处理QPixmap、Picture、QBitmap
热门文章
- 2017 Multi-University Training Contest - Team 3:1004. Kanade's trio(01字典树)
- 利用matlab自带函数快速提取二值图像的图像边缘 bwperim函数
- 吴恩达神经网络和深度学习-学习笔记-7-正则化regularization方法
- quartsu仿真8:二五十计数器74290的基本功能
- 如何删除oracle软件,如何用静默方式删除oracle软件
- ScheduledThreadPoolExecutor Usage
- VMWare workstation Pro 14 For Linux key
- struts2实现XML异步交互
- 1111---9999的变换
- O - Can you find it?