::返回OpenCV算子速查表

cv::threshold

  • 1. 函数定义
  • 2. 例程

1. 函数定义

 double threshold(InputArray src, OutputArray dst,double thresh, //阈值double maxval, //给定的最大值int type  //操作类型);
  • 《学习OpenCV3》的说明
阈值类型 操作
cv::THRESH_BINARY DST=(SRC>thresh)?MAXVALUE:0
cv::THRESH_BINARY_INV DST=(SRC>thresh)?0:MAXVALUE
cv::THRESH_TRUNC DST=(SRC>thresh)?THRESH:SRC
cv::THRESH_TOZERO DST=(SRC>thresh)?SRC:0
cv::THRESH_TOZERO_INV DST=(SRC>thresh)?0:SRC

  • OpenCV官方文档的说明
    https://docs.opencv.org/4.5.4/d7/d1b/group__imgproc__misc.html#gaa9e58d2860d4afa658ef70a9b1115576

  • 特殊值THRESH_OTSUTHRESH_TRIANGLE可以与上述值之一组合使用。在这些情况下,函数使用Otsu或Triangle算法确定最佳阈值,并使用它而不是指定的阈值。

2. 例程

#include "stdafx.h"
#include <opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{   //命名窗口namedWindow("电芯", WINDOW_NORMAL);namedWindow("THRESH_BINARY", WINDOW_NORMAL);namedWindow("THRESH_BINARY_INV", WINDOW_NORMAL);namedWindow("THRESH_TRUNC", WINDOW_NORMAL);namedWindow("THRESH_TOZERO", WINDOW_NORMAL);namedWindow("THRESH_TOZERO_INV", WINDOW_NORMAL);//namedWindow("THRESH_MASK", WINDOW_NORMAL); //不支持 官方文档也找不到它的解释//特殊值THRESH_OTSU或THRESH_TRIANGLE可以与上述值之一组合使用。//在这些情况下,函数使用Otsu或Triangle算法确定最佳阈值,并使用它而不是指定的阈值。namedWindow("THRESH_OTSU", WINDOW_NORMAL);namedWindow("THRESH_TRIANGLE", WINDOW_NORMAL);//定义图像变量Mat m_ImgCell = imread("./1.bmp", IMREAD_GRAYSCALE);Mat m_ImgThreshBinary;Mat m_ImgThreshBinaryInv;Mat m_ImgThreshTrunc;Mat m_ImgThreshToZero;Mat m_ImgThreshToZeroInv;//Mat m_ImgThreshMask;Mat m_ImgThreshOtsu;Mat m_ImgThreshTriangle;//设置阈值和最大值double m_dbThresh = 150;double m_dbMaxValue = 255;    //阈值化操作threshold(m_ImgCell, m_ImgThreshBinary, m_dbThresh, m_dbMaxValue, THRESH_BINARY);threshold(m_ImgCell, m_ImgThreshBinaryInv, m_dbThresh, m_dbMaxValue, THRESH_BINARY_INV);threshold(m_ImgCell, m_ImgThreshTrunc, m_dbThresh, m_dbMaxValue, THRESH_TRUNC);threshold(m_ImgCell, m_ImgThreshToZero, m_dbThresh - 70, m_dbMaxValue, THRESH_TOZERO);threshold(m_ImgCell, m_ImgThreshToZeroInv, m_dbThresh - 70, m_dbMaxValue, THRESH_TOZERO_INV);//threshold(m_ImgCell, m_ImgThreshMask, m_dbThresh, m_dbMaxValue, THRESH_MASK);//以下这两种自己设置的阈值不再起作用,而真正起作用的阈值会作为返回值返回double m_dbOtsuThresh = threshold(m_ImgCell, m_ImgThreshOtsu, 0, m_dbMaxValue, THRESH_BINARY | THRESH_OTSU);double m_dbTriangleThresh = threshold(m_ImgCell, m_ImgThreshTriangle, 0, m_dbMaxValue, THRESH_BINARY | THRESH_TRIANGLE);//显示图像imshow("电芯", m_ImgCell);imshow("THRESH_BINARY", m_ImgThreshBinary);imshow("THRESH_BINARY_INV", m_ImgThreshBinaryInv);imshow("THRESH_TRUNC", m_ImgThreshTrunc);imshow("THRESH_TOZERO", m_ImgThreshToZero);imshow("THRESH_TOZERO_INV", m_ImgThreshToZeroInv);//imshow("THRESH_MASK", m_ImgThreshMask);imshow("THRESH_OTSU", m_ImgThreshOtsu);imshow("THRESH_TRIANGLE", m_ImgThreshTriangle);cout << m_dbOtsuThresh << endl;cout << m_dbTriangleThresh << endl;waitKey(0);return 0;
}

OpenCV threshold 二值化相关推荐

  1. OpenCV图像二值化,Python

    OpenCV图像二值化,Python 原图: 二值化处理(只有黑和白): import cv2if __name__=="__main__":image = cv2.imread( ...

  2. OpenCV差分二值化的实时场景文本检测的实例(附完整代码)

    OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例(附完整代 ...

  3. opencv自适应二值化原理

    opencv自适应二值化原理 先对图像做模糊处理(一般是均值或者高斯模糊).(这里可以加上自己的操作,做一些其他类型的模糊以及一些形态学的操作). 用原图与模糊处理之后的图像做差得到一幅图像. 判断图 ...

  4. python-opencv-cv2.threshold()二值化函数详解

    文章目录 1.cv2.threshold()参数说明 2.代码示例 1.cv2.threshold()参数说明 cv2.threshold(src, thresh, maxval, type[, ds ...

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

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

  6. OpenCV:二值化函数cv2.threshold

    目录 功能作用: (一)简单阈值 (二)自适应阈值: (三)Otsu's二值化 功能作用: 二值化函数作用:图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效 ...

  7. OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)

    1. 学习目标 理解图像的分类,不同类型的图像的区别: 对图像进行二值化处理,对[ cv.threshold ]函数的理解. 2. 图像分类 2.1 不同类型图像说明 按照颜色对图像进行分类,可以分为 ...

  8. [转载] python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)

    参考链接: python opencv 基础6: cv2.threshold()二值图像 前一篇研究了opencv二值化方法threshold的使用,但是这个方法也存在一定的局限性,假如有一张图存在明 ...

  9. opencv滤镜-二值化实现黑白滤镜

    黑白滤镜 黑白滤镜非常简单,顾名思义就是图像只有黑色与白色,这实际上就是图像的二值化.实现的原理也非常地简单,设定一个阈值,假设为128,判断每个像素点的灰度值,大于128设为255(对应白色),小于 ...

最新文章

  1. Jmeter 使用自定义变量
  2. ETSI MEC — 与 5G 的融合
  3. Spring 中策略模式的 2 个经典应用,可以用来怼面试官了
  4. 小波的秘密5_多分辨率分析和连续小波变换2
  5. TP返回原生SQL语句:fetchSql
  6. 黑科技轮胎:有能发电的,脑洞简直不要太大...
  7. 20200208(补):翻转游戏Ⅰ Ⅱ(leetcode)
  8. MYSQL 高效索引策略(完成)
  9. uni-app项目的启动
  10. 小程序与MySQL数据库的交互_微信小程序数据库交互如何做到?
  11. Ubuntu登陆不进去输入密码后黑屏又返回登陆界面
  12. Snug(舒适) as a Bug(小虫) in a Rug(小地毯)(2019/1/2)
  13. 《天下无谋》读后感 --- 度心术卷1度心篇
  14. Vue~在线预览doc、docx、pdf、img文件
  15. 【能效管理】关于学校预付费水电系统云平台应用分析介绍
  16. 完全背包问题(f m)
  17. 苹果签名市场变天,频繁封杀到底是什么原因?
  18. 集合的交运算c语言函数,集合的并交运算(C语言
  19. 网站域名到期无法续费后还能买回来吗?
  20. git学习笔记兼教程

热门文章

  1. centos7 无法启动,停留在开机页面,报错 A start job is running for /etc/rc.d/rc.local compatibility 解决办法
  2. Linux下开源邮件系统Postfix+Extmail+Extman环境部署
  3. Debian完全卸载清理MySQL服务器
  4. Oracle中的函数 之 (wm_concat)
  5. iBaits中,关于insert返回值的问题(注意!!!不必写resultClass= java.lang.Integer,方法的返回值就是int)
  6. 【Oracle】SCOPE=MEMORY|SPFILE|BOTH
  7. 【知了堂学习笔记】java 自定义异常
  8. 通过swagger下载的文件乱码解决方法,求解
  9. 如何在vim中交换两个打开文件(在拆分中)的位置?
  10. 如果/否则列表理解?