一、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()相关推荐

  1. Java并发编程的艺术_Conc

    Java并发编程的艺术 1 并发编程的挑战 1.1 上下文切换 即使是单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制.时间片是CPU分配给各个线程的时间,因为时间片 ...

  2. cv2.threshold() 阈值:使用Python,OpenCV进行简单的图像分割

    图像分割有多种形式. 聚类.压缩.边缘检测.区域增长.图分区.分水岭等等:(Clustering. Compression. Edge detection. Region-growing. Graph ...

  3. python opencv local_threshold_Python-OpenCV中的cv2.threshold

    主要记录Python-OpenCV中的cv2,threshold()方法:官方文档 cv2.threshold() def threshold(src, thresh, maxval, type, d ...

  4. threshold 二值化的实现

    #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" in ...

  5. Opencv java 二值化函数threshold (10)

    函数理解 threshold 英语的意思是门槛,门槛的意思说要么在门槛外,要么在门槛内,并且门槛具有一定的条件要求 接下来我们看在opencv中如何使用该函数 Imgproc.threshold(sr ...

  6. pandas基于dataframe特定数据列的指定阈值将原dataframe分割成两个dataframe(split dataframe based on column value threshold

    pandas基于dataframe特定数据列的指定阈值将原dataframe分割成两个子dataframe(split dataframe based on column value threshol ...

  7. python判断列表list中的内容、数值是否全部都大于某一个阈值(threshold)、如果数值都大于某一个阈值(threshold)则跳出循环

    python判断列表list中的内容.数值是否全部都大于某一个阈值(threshold).python判断列表list中的内容是否全部都大于某一个阈值(threshold).如果数值都大于某一个阈值则 ...

  8. R语言使用pROC包绘制ROC曲线、获取最优阈值(threshold)及最优阈值对应的置信区间

    R语言使用pROC包绘制ROC曲线并获取最佳阈值(threshold)及最佳阈值对应的置信区间 #ROC曲线 ROC(receiver operating characteristic curve)接 ...

  9. opencv 阈值分割 — threshold()

    OpenCV阈值分割函数:threshold() 函数原型: double threshold(InputArray src, OutputArray dst, double thresh, doub ...

  10. 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 ...

最新文章

  1. 最强人脸检测来了 yolov5 face
  2. Outlook中自定义新邮件提醒
  3. [linux]在Linux里设置环境变量的方法(export PATH)
  4. 关于java线程同步的笔记_线程同步(JAVA笔记-线程基础篇)
  5. pca数学推导_PCA背后的统计和数学概念
  6. 结构化编程:不确定迭代循环控制do while
  7. 最新增值税商品税目编码表_姓名:增值税,税率:13%,9%,6%,这是我最新最全税率表!...
  8. nodejs的koa中cookie和session的使用,cookie和session的区别
  9. ASP.NET 4新增功能(一) ASP.NET核心服务
  10. iOS--UIView和UIWindow用法
  11. 解决电脑启动蓝屏出现Recovery—错误代码0xc000014
  12. 日程提醒app android,手机里有提醒日程安排的软件吗?
  13. Oracle Report開發(1)--Oracle Report Builder
  14. 《指弹:周杰伦青花瓷》
  15. c语言图书管理系统用什么软件,编写c语言的软件 纯C语言编写图书管理系统.doc...
  16. python在哪里学比较好,python从哪里学起
  17. 在html页面添加了评论和回复的显示页面
  18. linux排行榜网站,DistroWatch网站搞的Linux国际排名为它赢得了不少的流量
  19. springboot基础(72):Redisson分布式锁
  20. 在我们这个地方,你必须不停地奔跑,才能留在原地

热门文章

  1. oracle dbwr trace文件,ORA-01157: cannot identify/lock data file 19 - see DBWR trace file问题处理...
  2. mysql中常见查询表_MySQL中常见查询
  3. 在美国本科 计算机排名2015,(word)2015年美国大学专业排名汇总-以计算机专业排名为例.doc...
  4. react生命周期函数_如何优雅的消灭掉react生命周期函数
  5. ubuntu安装Qt开发环境
  6. 自制串口示波器小工具
  7. 【渝粤题库】陕西师范大学700005 遗传学
  8. android 通知垃圾回收,Android中垃圾回收日志信息
  9. 【C++编程题2】字符串插入空格
  10. 解调去载波后均衡信道与实际信道的关系