转自:https://blog.csdn.net/u012566751/article/details/77046445

一篇很好的介绍threshold文章;

图像的二值化就是将图像上的像素点的灰度值设置为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位
具体如下表
 
生成关系如下表
 
 
测试代码
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);

最新文章

  1. ImportError: The _imagingft C module is not installed
  2. Linux的学习--crontab
  3. 调用newtonsoft.json反序列出错
  4. Spring AOP 注解和xml实现 --转载
  5. 仿Twitter登陆移动背景效果
  6. 【C语言】模拟实现库函数strcat函数
  7. python 性能鸡汤
  8. ubuntu14.04 cocos2d-x-3.6 glfw编译出错解决方案
  9. 基于visual Studio2013解决面试题之0410计算二进制中1的个数
  10. eclipse报错:发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素
  11. CentOS6下安装git
  12. .net 笔试面试总结(2)
  13. Spring Cloud 2-Hystrix 断路容错保护(四)
  14. AX_DataSource
  15. django之signal机制再探
  16. Python常用内置函数介绍
  17. e 的由来
  18. docker 系列之 配置阿里云镜像加速器
  19. :工厂模式1:方法模式--Pizza
  20. golang中defer的详解 转自https://blog.csdn.net/skh2015java/article/details/77081250

热门文章

  1. MSP430-LED中断闪烁代码详解
  2. Unity碰撞消息(OnCollisionXXXX)和触发消息(OnTriggerXXXX)的调用情境
  3. 关于js重名方法的先后调用问题
  4. Laptop(线段树+离散化)
  5. Codeforces 1389 题解(A-E)
  6. PHP弱类型hash比较缺陷
  7. ASP调用WEBSERVICE并对返回结果进行解析时遇到的问题
  8. Mybatis注解开发相关
  9. [LeetCode]26. 删除排序数组中的重复项(数组,双指针)
  10. 三年之久的 etcd3 数据不一致 bug 分析