OpenCV threshold 二值化
::返回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_OTSU或THRESH_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 二值化相关推荐
- OpenCV图像二值化,Python
OpenCV图像二值化,Python 原图: 二值化处理(只有黑和白): import cv2if __name__=="__main__":image = cv2.imread( ...
- OpenCV差分二值化的实时场景文本检测的实例(附完整代码)
OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例 OpenCV差分二值化的实时场景文本检测的实例(附完整代 ...
- opencv自适应二值化原理
opencv自适应二值化原理 先对图像做模糊处理(一般是均值或者高斯模糊).(这里可以加上自己的操作,做一些其他类型的模糊以及一些形态学的操作). 用原图与模糊处理之后的图像做差得到一幅图像. 判断图 ...
- python-opencv-cv2.threshold()二值化函数详解
文章目录 1.cv2.threshold()参数说明 2.代码示例 1.cv2.threshold()参数说明 cv2.threshold(src, thresh, maxval, type[, ds ...
- Opencv java 二值化函数threshold (10)
函数理解 threshold 英语的意思是门槛,门槛的意思说要么在门槛外,要么在门槛内,并且门槛具有一定的条件要求 接下来我们看在opencv中如何使用该函数 Imgproc.threshold(sr ...
- OpenCV:二值化函数cv2.threshold
目录 功能作用: (一)简单阈值 (二)自适应阈值: (三)Otsu's二值化 功能作用: 二值化函数作用:图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出明显的黑白效 ...
- OpenCV-Python学习(10)—— OpenCV 图像二值化处理(cv.threshold)
1. 学习目标 理解图像的分类,不同类型的图像的区别: 对图像进行二值化处理,对[ cv.threshold ]函数的理解. 2. 图像分类 2.1 不同类型图像说明 按照颜色对图像进行分类,可以分为 ...
- [转载] python3 opencv 图像二值化笔记(cv2.adaptiveThreshold)
参考链接: python opencv 基础6: cv2.threshold()二值图像 前一篇研究了opencv二值化方法threshold的使用,但是这个方法也存在一定的局限性,假如有一张图存在明 ...
- opencv滤镜-二值化实现黑白滤镜
黑白滤镜 黑白滤镜非常简单,顾名思义就是图像只有黑色与白色,这实际上就是图像的二值化.实现的原理也非常地简单,设定一个阈值,假设为128,判断每个像素点的灰度值,大于128设为255(对应白色),小于 ...
最新文章
- Jmeter 使用自定义变量
- ETSI MEC — 与 5G 的融合
- Spring 中策略模式的 2 个经典应用,可以用来怼面试官了
- 小波的秘密5_多分辨率分析和连续小波变换2
- TP返回原生SQL语句:fetchSql
- 黑科技轮胎:有能发电的,脑洞简直不要太大...
- 20200208(补):翻转游戏Ⅰ Ⅱ(leetcode)
- MYSQL 高效索引策略(完成)
- uni-app项目的启动
- 小程序与MySQL数据库的交互_微信小程序数据库交互如何做到?
- Ubuntu登陆不进去输入密码后黑屏又返回登陆界面
- Snug(舒适) as a Bug(小虫) in a Rug(小地毯)(2019/1/2)
- 《天下无谋》读后感 --- 度心术卷1度心篇
- Vue~在线预览doc、docx、pdf、img文件
- 【能效管理】关于学校预付费水电系统云平台应用分析介绍
- 完全背包问题(f m)
- 苹果签名市场变天,频繁封杀到底是什么原因?
- 集合的交运算c语言函数,集合的并交运算(C语言
- 网站域名到期无法续费后还能买回来吗?
- git学习笔记兼教程
热门文章
- centos7 无法启动,停留在开机页面,报错 A start job is running for /etc/rc.d/rc.local compatibility 解决办法
- Linux下开源邮件系统Postfix+Extmail+Extman环境部署
- Debian完全卸载清理MySQL服务器
- Oracle中的函数 之 (wm_concat)
- iBaits中,关于insert返回值的问题(注意!!!不必写resultClass= java.lang.Integer,方法的返回值就是int)
- 【Oracle】SCOPE=MEMORY|SPFILE|BOTH
- 【知了堂学习笔记】java 自定义异常
- 通过swagger下载的文件乱码解决方法,求解
- 如何在vim中交换两个打开文件(在拆分中)的位置?
- 如果/否则列表理解?