二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑【转】

本文探讨了OpenCV中的cvThreshold()函数,特别是参数CV_THRESH_OTSU的作用。作者在寻找二值化解决方案时,发现了CV_THRESH_OTSU能提供良好的效果和快速的处理速度。通过与其他二值化方法如一维和二维OTSU的对比,CV_THRESH_OTSU在处理大型图像时表现出显著的时间优势。文章提供了相关程序和图像资源链接供读者参考。
摘要由CSDN通过智能技术生成

查看OpenCV文档cvThreshold(),在二值化函数cvThreshold(const CvArr* src, CvArr* dst, double threshold, double max_value, int threshold_type)中,参数threshold_type有5种类型:

  • THRESH_BINARY
  • THRESH_BINARY_INV
  • THRESH_TRUNC
  • THRESH_TOZERO
  • THRESH_TOZERO_INV

问题来了:为什么可以在threshold_type参数中使用CV_THRESH_OTSU,在哪里可以查看这种OTSU,它用的什么方法?经多次验证,二值化的效果很好,且速度很快。
已经有一些同志在使用:
例证1:例证1
例证2:例证2
例证3:例证3

    我的遭遇:为了二值化一个比较大的图像(10M,3840*2748),痛苦的看了各种论文,尝试了各种的二值化方法:一维OTSU,快速迭代的一维OTSU,二维的OTSU,快速迭代的二维OTSU。但现实的残酷的!只有二维的OTSU和快速迭代的OTSU可用,但前者处理时间让人难以接受,后者也要500多个ms。        快速迭代的二维OTSU算法是根据吴一全老师的《二维最大类间方差阈值分割的快速迭代算法》(论文下载链接,提取码:fd0b)来实现的。但是令我哭笑不得的是,无意中在网上发现了一种方法threshold_type使用参数使用CV_THRESH_OTSU时,时间却大大的缩短。程序如下(
程序下载链接提取码:fd0b),图像下载  (提取码:24f3)。

/* otsu_2d:二维最大类间方差阈值分割的快速迭代算法   吴一全 */
#include <iostream>
#include <cv.h>
#include <highgui.h>

using namespace std;
double TwoDimentionOtsu(IplImage *image);
int main()  
{ 
        IplImage* srcImage = cvLoadImage( 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值