opencv 中 threshold 函数作用

在 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,则该值是计算得到的最佳阈值。

相关推荐
CoovallyAIHub6 小时前
化工厂气体泄漏怎么用AI检测?30张图3D重建气体泄漏场景——美国国家实验室NeRF新研究
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
OpenClaw 近 2000 个 Skills,为什么没有一个好用的视觉检测工具?
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
CVPR 2026 | 用一句话告诉 AI 分割什么——MedCLIPSeg 让医学图像分割不再需要海量标注
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
Claude Code 突然变成了 66 个专家?这个 5.8k Star 的开源项目,让我重新理解了什么叫"会用 AI"
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
181小时视频丢给GPT-5,准确率只有15%——南大联合NVIDIA等五校发布多模态终身理解数据集
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
CVPR 2026 | GS-CLIP:3D几何先验+双流视觉融合,零样本工业缺陷检测新SOTA,四大3D工业数据集全面领先!
深度学习·算法·计算机视觉
CoovallyAIHub5 天前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
CoovallyAIHub6 天前
Moonshine:比 Whisper 快 100 倍的端侧语音识别神器,Star 6.6K!
深度学习·算法·计算机视觉
CoovallyAIHub6 天前
速度暴涨10倍、成本暴降6倍!Mercury 2用扩散取代自回归,重新定义LLM推理速度
深度学习·算法·计算机视觉
CoovallyAIHub6 天前
OpenClaw一脚踩碎传统CV?机器终于不再只是看世界
深度学习·算法·计算机视觉