threshold()
一、threshold()函数
1.1 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,否则不改变
1.2调用示例
Mat ScrImage, OutImage, OutImage1, OutImage2, OutImage3;ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg");threshold(ScrImage, OutImage1, 200, 255, CV_THRESH_BINARY);//固定阈值分割imshow("【固定阈值处理:二值化】", OutImage1);
二、adapativeThreshold()函数
2.1 adapativeThreshold()函数各参数详解
void cvAdaptiveThreshold(constCvArr* src,CvArr* dst,double max_value,int adaptive_method =CV_ADAPTIVE_THRESH_MEAN_C,int threshold_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, 它是一个从均值或加权均值提取的常数(见讨论), 尽管它可以是负数。
2.2调用示例
Mat ScrImage, OutImage, OutImage1, OutImage2, OutImage3;ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg");adaptiveThreshold(ScrImage, OutImage2, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 31, 10);//自适应阈值分割imshow("【自动阈值处理:二值化】", OutImage2);
三、完整程序
#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/opencv.hpp>#include <vector>#include <cstdio>using namespacestd;using namespacecv;int main(){Mat ScrImage, ScrImgaeCopy1, OutImage, OutImage1, OutImage2,OutImage3, OutImage4, OutImage5, OutImage6, OutImage7, OutImage8, OutImage9;ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg",0); //读入图像 \\image1.jpg brownbug.jpg whitebug.jpgimshow("【原图】", ScrImage);threshold(ScrImage,OutImage1, 200, 255, CV_THRESH_BINARY);//固定阈值分割adaptiveThreshold(ScrImage,OutImage2, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 31, 10);//自适应阈值分割imshow("【固定阈值处理:二值化】", OutImage1);imshow("【自动阈值处理:二值化】", OutImage2);waitKey(0);return NULL;}
threshold()相关推荐
- Java并发编程的艺术_Conc
Java并发编程的艺术 1 并发编程的挑战 1.1 上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制.时间片是CPU分配给各个线程的时间,因为时间片 ...
- cv2.threshold() 阈值:使用Python,OpenCV进行简单的图像分割
图像分割有多种形式. 聚类.压缩.边缘检测.区域增长.图分区.分水岭等等:(Clustering. Compression. Edge detection. Region-growing. Graph ...
- python opencv local_threshold_Python-OpenCV中的cv2.threshold
主要记录Python-OpenCV中的cv2,threshold()方法:官方文档 cv2.threshold() def threshold(src, thresh, maxval, type, d ...
- threshold 二值化的实现
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" in ...
- Opencv java 二值化函数threshold (10)
函数理解 threshold 英语的意思是门槛,门槛的意思说要么在门槛外,要么在门槛内,并且门槛具有一定的条件要求 接下来我们看在opencv中如何使用该函数 Imgproc.threshold(sr ...
- pandas基于dataframe特定数据列的指定阈值将原dataframe分割成两个dataframe(split dataframe based on column value threshold
pandas基于dataframe特定数据列的指定阈值将原dataframe分割成两个子dataframe(split dataframe based on column value threshol ...
- python判断列表list中的内容、数值是否全部都大于某一个阈值(threshold)、如果数值都大于某一个阈值(threshold)则跳出循环
python判断列表list中的内容.数值是否全部都大于某一个阈值(threshold).python判断列表list中的内容是否全部都大于某一个阈值(threshold).如果数值都大于某一个阈值则 ...
- R语言使用pROC包绘制ROC曲线、获取最优阈值(threshold)及最优阈值对应的置信区间
R语言使用pROC包绘制ROC曲线并获取最佳阈值(threshold)及最佳阈值对应的置信区间 #ROC曲线 ROC(receiver operating characteristic curve)接 ...
- opencv 阈值分割 — threshold()
OpenCV阈值分割函数:threshold() 函数原型: double threshold(InputArray src, OutputArray dst, double thresh, doub ...
- Metadata GC Threshold导致的full gc分析
gc log 两次full gc 均是Metadata GC导致, OpenJDK 64-Bit Server VM (25.151-b12) for linux-amd64 JRE (1.8.0_1 ...
最新文章
- 最强人脸检测来了 yolov5 face
- Outlook中自定义新邮件提醒
- [linux]在Linux里设置环境变量的方法(export PATH)
- 关于java线程同步的笔记_线程同步(JAVA笔记-线程基础篇)
- pca数学推导_PCA背后的统计和数学概念
- 结构化编程:不确定迭代循环控制do while
- 最新增值税商品税目编码表_姓名:增值税,税率:13%,9%,6%,这是我最新最全税率表!...
- nodejs的koa中cookie和session的使用,cookie和session的区别
- ASP.NET 4新增功能(一) ASP.NET核心服务
- iOS--UIView和UIWindow用法
- 解决电脑启动蓝屏出现Recovery—错误代码0xc000014
- 日程提醒app android,手机里有提醒日程安排的软件吗?
- Oracle Report開發(1)--Oracle Report Builder
- 《指弹:周杰伦青花瓷》
- c语言图书管理系统用什么软件,编写c语言的软件 纯C语言编写图书管理系统.doc...
- python在哪里学比较好,python从哪里学起
- 在html页面添加了评论和回复的显示页面
- linux排行榜网站,DistroWatch网站搞的Linux国际排名为它赢得了不少的流量
- springboot基础(72):Redisson分布式锁
- 在我们这个地方,你必须不停地奔跑,才能留在原地
热门文章
- oracle dbwr trace文件,ORA-01157: cannot identify/lock data file 19 - see DBWR trace file问题处理...
- mysql中常见查询表_MySQL中常见查询
- 在美国本科 计算机排名2015,(word)2015年美国大学专业排名汇总-以计算机专业排名为例.doc...
- react生命周期函数_如何优雅的消灭掉react生命周期函数
- ubuntu安装Qt开发环境
- 自制串口示波器小工具
- 【渝粤题库】陕西师范大学700005 遗传学
- android 通知垃圾回收,Android中垃圾回收日志信息
- 【C++编程题2】字符串插入空格
- 解调去载波后均衡信道与实际信道的关系