图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效果。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。OpenCV中提供了函数cv::threshold();
注意:作者采用OpenCV 3.0.0
函数原型
参数说明
src:源图像,可以为8位的灰度图,也可以为32位的彩色图像。(两者由区别)
dst:输出图像
thresh:阈值
maxval:dst图像中最大值
type:阈值类型,可以具体类型如下:
编号 阈值类型枚举
注意
1 THRESH_BINARY
2 THRESH_BINARY_INV
3 THRESH_TRUNC
4 THRESH_TOZERO
5 THRESH_TOZERO_INV
6 THRESH_MASK
不支持
7 THRESH_OTSU
不支持32位
8 THRESH_TRIANGLE
不支持32位
具体如下表
生成关系如下表
函数参考可以至http://docs.opencv.org/3.0.0/examples.html
测试代码
Mat gray;
cvtColor(src, gray, CV_BGR2GRAY); 
// 全局二值化
int th = 100;
cv::Mat threshold1,threshold2,threshold3,threshold4,threshold5,threshold6,threshold7,threshold8;
cv::threshold(gray, threshold1, th, 255, THRESH_BINARY);
cv::threshold(gray, threshold2, th, 255, THRESH_BINARY_INV);
cv::threshold(gray, threshold3, th, 255, THRESH_TRUNC);
cv::threshold(gray, threshold4, th, 255, THRESH_TOZERO);
cv::threshold(gray, threshold5, th, 255, THRESH_TOZERO_INV);
//cv::threshold(gray, threshold6, th, 255, THRESH_MASK);
cv::threshold(gray, threshold7, th, 255, THRESH_OTSU);
cv::threshold(gray, threshold8, th, 255, THRESH_TRIANGLE);
cv::imshow("THRESH_BINARY", threshold1);
cv::imshow("THRESH_BINARY_INV", threshold2);
cv::imshow("THRESH_TRUNC", threshold3);
cv::imshow("THRESH_TOZERO", threshold4);
cv::imshow("THRESH_TOZERO_INV", threshold5);
//cv::imshow("THRESH_MASK", threshold6);
cv::imshow("THRESH_OTSU", threshold7);
cv::imshow("THRESH_TRIANGLE", threshold8);
cv::waitKey(0);

测试结果
原图
THRESH_BINARY
THRESH_BINARY_INV
THRESH_TRUNC
THRESH_TOZERO
THRESH_TOZERO_INV
THRESH_OTSU
THRESH_TRIANGLE
注意:
如果采用彩色图像进行计算会得到彩色效果,而不是预期的二值化结果
彩色源图
灰度源图

OpenCV基础——threshold函数的使用相关推荐

  1. 计算机视觉开源库OpenCV之threshold()函数详解

    cv2.threshold()函数作用:去掉噪,例如过滤很小或很大像素值的图像点. cv2.threshold()函数python版原型: retval, dst = cv.threshold(src ...

  2. 利用OpenCV的threshold函数实现双阈值法二值化操作的源码

    直接上源码吧,很简单,一看就懂,如果你不明白,可以举两个灰度值实际代入进行理解! 源码如下: 源码中用到的图像的下载链接为:hand1.jpg_免费高速下载|百度网盘-分享无限制 图像处理开发需求.图 ...

  3. Opencv基础画图函数——line、circle、rectangle、Rect、ellipse、polylines、putText函数的用法

    目录 1.line函数 2.circle函数 3.rectangle.Rect函数 4.ellipse函数 5.polylines函数 6.随机初始化颜色 7.putText函数 总结 1.line函 ...

  4. Opencv的使用小教程1——Opencv基础函数汇总

    Opencv的使用小教程1--Opencv基础函数汇总 1.VideoCapture 2.imread 3.resize 4.clone 5.cvtColor 6.Scalar 7.获取像素点的值 8 ...

  5. opencv python cv2.threshold()函数报错 TypeError: Expected cv::UMat for argument 'mat'

    错误信息: 解决办法: 原来cv2.threshold()函数有俩返回值,我这只用了一个接收... 改成俩就好了: 参考文章1:图像阈值处理cv2.threshold()函数(python) 参考文章 ...

  6. opencv基础:罗德里格斯旋转公式(Rodrigues' rotation formula)推导 rodrigues()函数原理

    参考:1-https://openhome.cc/Gossip/WebGL/Rodrigues.html(比较好的理解流程) 2-https://www.cnblogs.com/wtyuan/p/12 ...

  7. opencv阈值处理-threshold函数、自适应阈值处理和Ostu处理

    阈值处理是指剔除图像内像素值高于一定值或者低于一定值的像素点.例如设置阈值为125,则大于125的像素点的值设为255,小于125的设为0. 一.threshold函数 open cv3.0使用cv2 ...

  8. 【笔记】opencv阈值处理 threshold函数 cv2.THRESH_BINARY ,cv2.THRESH_TRUNC) cv2.adaptiveThreshold()

    像素是在模拟图像数字化时对连续空间进行离散化得到的.每个像素具有整数行(高)和列(宽)位置坐标,同时每个像素都具有整数灰度值或颜色值. threshold函数 返回的第一个参数为阈值,第二个为结果图像 ...

  9. opencv二值化的cv2.threshold函数

    (一)简单阈值 简单阈值当然是最简单,选取一个全局阈值,然后就把整幅图像分成了非黑即白的二值图像了.函数为cv2.threshold() 这个函数有四个参数,第一个原图像,第二个进行分类的阈值,第三个 ...

  10. opencv 二值化 python_opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用...

    cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下: #ret:暂时就认为是设定的thresh阈值,mask:二值化的图像 ret,mask = cv2.threshold(i ...

最新文章

  1. Symantec:揭秘Hidden Lynx组织的APT***行动
  2. Linux常用的50个命令
  3. Python在Linux实现代码特效,关于在Linux系统上的Ubuntu上基于python3、shell语言代码的实现...
  4. ORACLE expdp/impdp详解
  5. SAP ABAP Netweaver系统的传输请求类型和原始系统的含义
  6. oracle的oradata,Oracle使用oradata恢复数据库
  7. 2016第三届科学数据大会诚邀商务合作
  8. 设计模式系列:小小总结
  9. docker安装消息队列延时插件
  10. 轻松三步教你配置oracle,Oracle Net Configuration Assistant 配置步骤简明教程
  11. Python中更新pip版本的那些事
  12. html 表格 分页源码,JS代码实现table数据分页效果
  13. 量化分析自己的生活——日活统计表,但求客观公正,勿违彼时言!
  14. Redis远程连接不上解决办法
  15. Linux下玩转Dota2
  16. java农夫过河_农夫过河问题(java版)
  17. HSV2RGB一种灯光渐变实现算法
  18. 研究区域内测高卫星数据选取(pass)--以T/P-Jason1/2/3为例
  19. 单片机介绍与内部结构
  20. 计算机软件著作权登记分类号如何选择?

热门文章

  1. php元换成万元,元换算成万元公式(元换算成万元换算器)
  2. Python爬虫实战之爬取饿了么信息
  3. P1829 [国家集训队]Crash的数字表格
  4. 软件测试预演环境,什么是软件测试用例预演 有何优点?-软件水平考试-考试吧...
  5. Meta-Tracker(ECCV 2018)视频目标跟踪源码运行笔记——Testing模式
  6. NMOSPMOSADC/示波器采样率
  7. 自动排单功能的一些思考
  8. JavaScript逻辑运算与或非
  9. .Net5使用Sqlsugar操作加密Sqlite数据库
  10. 服务器硬盘数据备份到nas,这么设置USBCopy数据就能轻松备份至NAS