欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > opencv 中 threshold 函数作用

opencv 中 threshold 函数作用

2024/11/13 15:19:19 来源:https://blog.csdn.net/qq_62429412/article/details/143645241  浏览:    关键词: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,则该值是计算得到的最佳阈值。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com