Opencv2教程一:图像变换之阈值二值threshold
网名:无名 QQ:16349023 email:mengwzy@qq.com
曾经非常少写教程,写的可能有点乱希望大对家有帮助
threshold 方法是通过遍历灰度图中点。将图像信息二值化,处理过后的图片仅仅有二种色值。
其函数原型例如以下:
double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)
參数信息:
第一个參数,InputArray类型的src,输入数组,填单通道 , 8或32位浮点类型的Mat就可以。
第二个參数。OutputArray类型的dst,函数调用后的运算结果存在这里。即这个參数用于存放输出结果。且和第一个參数中的Mat变量有一样的尺寸和类型。
第三个參数。double类型的thresh,阈值的详细值。
第四个參数,double类型的maxval。当第五个參数阈值类型type取 THRESH_BINARY 或THRESH_BINARY_INV阈值类型时的最大值.
第五个參数,int类型的type,阈值类型,。
其他參数非常好理解,我们来看看第五个參数。第五參数有下面几种类型
0: THRESH_BINARY 当前点值大于阈值时。取Maxval,也就是第四个參数,以下再不说明,否则设置为0
1: THRESH_BINARY_INV 当前点值大于阈值时,设置为0,否则设置为Maxval
2: THRESH_TRUNC 当前点值大于阈值时,设置为阈值,否则不改变
3: THRESH_TOZERO 当前点值大于阈值时,不改变。否则设置为0
4: THRESH_TOZERO_INV 当前点值大于阈值时,设置为0,否则不改变
官方解释例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbm5zd29yZA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
以下是简单应用实例代码片段
int nY20_thresh=96;
int nY20_MaxThesh=255;
void _onY20thresh(int,void*){
Mat src;
m_Mat.copyTo(src); Mat dst,edge,gray; // 【1】创建与src同类型和大小的矩阵(dst)
dst.create( src.size(), src.type() ); // 【2】将原图像转换为灰度图像
cvtColor( src, gray, CV_BGR2GRAY ); // 【3】先用使用 3x3内核来降噪
blur( gray, edge, Size(3,3) ); //type选THRESH_BINARY。大于阈值的设置为maxval(255),其他置0
threshold(edge, dst, nY20_thresh, 255, THRESH_BINARY); CVShow("threshold二值化灰图",dst,400,400); }
效果例如以下:
threshold方法一般用于将图像二值化后。检索轮廓,或简单的文件夹提取。 这章就到这里希望对大家有帮助。
Opencv2教程一:图像变换之阈值二值threshold的更多相关文章
- [转载+原创]Emgu CV on C# (四) —— Emgu CV on 全局固定阈值二值化
重点介绍了全局二值化原理及数学实现,并利用emgucv方法编程实现. 一.理论概述(转载,如果懂图像处理,可以略过,仅用作科普,或者写文章凑字数) 1.概述 图像二值化是图像处理中的一项基本技术,也 ...
- 【转】Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化
局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自< ...
- [转载+原创]Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化
局部自适应阈值二值化 相对全局阈值二值化,自然就有局部自适应阈值二值化,本文利用Emgu CV实现局部自适应阈值二值化算法,并通过调节block大小,实现图像的边缘检测. 一.理论概述(转载自< ...
- OpenCV图像的全局阈值二值化函数(OTSU)
cv::threshold(GrayImg, Bw, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);//灰度图像二值化 CV_THRESH_OTSU是提取图像最 ...
- 图像处理------基于Otsu阈值二值化
一:基本原理 该方法是图像二值化处理常见方法之一,在Matlab与OpenCV中均有实现. Otsu Threshing方法是一种基于寻找合适阈值实现二值化的方法,其最重 要的部分是寻找图像二值化阈值 ...
- Wellner 自适应阈值二值化算法
参考文档: Adaptive Thresholding for the DigitalDesk.pdf Adaptive Thresholding Using the Integral I ...
- 自适应阈值二值化之最大类间方差法(大津法,OTSU)
最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适应的阈值确定的方法,又叫大津法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间 ...
- OpenCV_基于局部自适应阈值的图像二值化
在图像处理应用中二值化操作是一个很常用的处理方式,例如零器件图片的处理.文本图片和验证码图片中字符的提取.车牌识别中的字符分割,以及视频图像中的运动目标检测中的前景分割,等等. 较为常用的图像二值化方 ...
- 机器学习进阶-阈值与平滑-图像阈值 1. cv2.threshold(进行阈值计算) 2. 参数type cv2.THRESH_BINARY(表示进行二值化阈值计算)
1. ret, dst = cv2.thresh(src, thresh, maxval, type) 参数说明, src表示输入的图片, thresh表示阈值, maxval表示最大值, type表 ...
随机推荐
- 009_【OS X和iOS系统学习笔记】 OS X架构
1.OS X是整个操作系统的集体名称,而Darwin是其中的一个组件. 2.Darwin是操作系统的类UNIX核心,本身由内核.XNU和运行时组成. 3.uname指令:可以得到有关架构的详细信息以及 ...
- MySQL root密码忘记后更优雅的解决方法
MySQL root密码忘记后更优雅的解决方法 https://www.jb51.net/article/143453.htm /usr/bin/mysqld_safe --defaults-file ...
- 用原生js实现ajax
// 通过createXHR()函数创建一个XHR对象 function createXHR() { if(window.XMLHttpRequest) { // IE7.Firefox.Opera. ...
- Java 基本语法---流程控制
Java 基本语法---流程控制 0. 概述 三大流程控制语句:顺序.选择.循环. 选择结构: if 结构,if - else结构: 多重 if - else 语句 ; 嵌套 if - else 语句 ...
- css实现导航切换
css实现导航切换 效果图: 代码如下,复制即可使用: <!DOCTYPE html> <html> <head> <title>css实现导航切换&l ...
- 删除MySQL binlog日志的方法
对于比较繁忙的OLTP(在线事务处理)系统,由于每天生成日志量大,这些日志如果长时间不清除,将会对磁盘空间带来很大的浪费.因此,定期删除日志是DBA维护MySQL数据库的一个重要工作内容.下面跟大家分 ...
- ERP客户关系渠管理添加和修改联系人(二十一)
树形结构treeview 前端代码: <form id="form1" runat="server"> <div> <asp:Tr ...
- ps不显示命令本身的进程号
当我们查看某个服务的进程时候,它会把命令本身的进程显示出来.如下图: 进程号2383 就是我命令本身的进程号,和我实际想看的进程无关 特别是在我们写脚本,kill进程时候会报错: 解决办法可以优化脚本 ...
- 使用libvirt管理KVM(一)
一. 安装和配置libvirt,源码下载http://www.qemu-project.org/download/#source. 二. 从包和源码包进行安装libvirt. 1. 在ubuntu系统 ...
- ubantu下如何完全彻底卸载mysql(转)
ubantu下如何完全彻底卸载mysql https://blog.csdn.net/wszll_Alex/article/details/46277681 第1步 依次执行下面的语句 1 sud ...