opencv 中 threshold 函数作用

ops/2024/11/14 10:59:48/

在 OpenCV 中,threshold 函数用于将图像转换为二值图像,它通过设置一个阈值来将像素值分类为两类:低于阈值的像素设置为 0(或黑色),高于阈值的像素设置为最大值(通常是 255 或白色)。这是图像处理中的一种常见操作,特别是在边缘检测、图像分割和目标识别等任务中。

函数原型:

cv::threshold(const cv::Mat& src,     // 输入图像,应该是灰度图cv::Mat& dst,           // 输出图像,结果会存储在这里double thresh,          // 阈值double maxval,          // 大于阈值的像素值int thresholdType       // 阈值类型
);

参数:

  • src:输入图像,通常是灰度图像。threshold 操作只对单通道图像(通常是灰度图像)有效。
  • dst:输出图像,存储二值化后的结果。
  • thresh:阈值,用于将像素值分为两类。如果像素值大于 thresh,则设置为 maxval;否则设置为 0。
  • maxval:大于阈值的像素将被设置为此值。通常为 255(白色)。
  • thresholdType:阈值类型。OpenCV 提供了几种不同的类型,用于控制阈值操作的方式。常用的类型如下:

thresholdType 参数的常用值:

  1. cv::THRESH_BINARY:如果像素值大于 thresh,则设置为 maxval,否则设置为 0。即将图像转为黑白图像。
  2. cv::THRESH_BINARY_INV:与 THRESH_BINARY 相反。如果像素值大于 thresh,则设置为 0,否则设置为 maxval
  3. cv::THRESH_TRUNC:如果像素值大于 thresh,则将其值设置为 thresh,否则不变。
  4. cv::THRESH_TOZERO:如果像素值大于 thresh,则不改变其值,否则设置为 0。
  5. cv::THRESH_TOZERO_INV:与 THRESH_TOZERO 相反。如果像素值大于 thresh,则不变,否则设置为 0。
  6. cv::THRESH_OTSU:自动计算阈值(基于 Otsu 的算法)。thresh 参数在这种情况下会被忽略,OpenCV 会自动计算最佳阈值。

返回值:

threshold 函数返回一个浮动的阈值(retval),如果使用了 cv::THRESH_OTSU,则该值是计算得到的最佳阈值。


http://www.ppmy.cn/ops/133548.html

相关文章

导航栏小案例

实现类似于这样的效果 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>导航栏</title><style>*{margin: 0;padding: 0;}.div1{width: 100%;height: 60px;/* border: 1px solid blue; */background-color:rgb(…

计算机视觉 ---图像模糊

1、图像模糊的作用&#xff1a; 减少噪声&#xff1a; 在图像获取过程中&#xff0c;例如通过相机拍摄或者传感器采集&#xff0c;可能会受到各种因素的干扰&#xff0c;从而引入噪声。这些噪声在图像上表现为一些孤立的、不符合图像主体内容的像素变化&#xff0c;如椒盐噪声&…

Brave127编译指南 Windows篇:配置Visual Studio 2022(二)

1. 前言 在Brave浏览器的编译过程中&#xff0c;配置适当的开发环境是至关重要的一步。Visual Studio 2022作为一款强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;为Brave浏览器的编译提供了必要的工具和支持。它不仅提供了代码编辑和调试功能&#xff0c;还包含了…

MySQL技巧之跨服务器数据查询:进阶篇-从A数据库复制到B数据库的表中

MySQL技巧之跨服务器数据查询&#xff1a;进阶篇-从A数据库复制到B数据库的表中 基础篇已经描述&#xff1a;借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQ…

利用 React 构建现代化 Web 应用的核心实践

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; React 是一个用于构建用户界面的前端框架&#xff0c;它由 Facebook 开发并在 2013 年开源。React 的崛起标志着前端开发进入了组…

批量规范化与ResNet——pytorch与paddle实现批量规范化与ResNet

批量规范化与ResNet——pytorch与paddle实现批量规范化与ResNet 本文将深入探讨批量规范化与ResNet的理论基础&#xff0c;并通过PyTorch和PaddlePaddle两个深度学习框架来展示如何实现批量规范化与ResNet模型。我们将首先介绍批量规范化与ResNet的基本概念&#xff0c;这些理…

xrandr源码分析

1、XOpenDisplay 打开xrandr句柄&#xff0c;参数是显示后端xorg或者xwayland&#xff0c;也就是localhost:0.0 dpy XOpenDisplay (display_name); //XOpenDisplay(":0");if (dpy NULL) {fprintf (stderr, "Cant open display %s\n", XDisplayName(displ…

opencv保姆级讲解——光学学符识别(OCR)(4)

光学字符识别 &#xff08;Optical Character Recognition, OCR&#xff09;是指对文本材料的图像文件进行分析识别处理&#xff0c;以获取文字和版本信息的过程。也就是说将图象中的文字进行识别&#xff0c;并返回文本形式的内容 以下是比较流行的开源的ORC识别库 Tessera…