OpenCV总结2一threshold函数

    技术2022-07-12  71

    图像处理最常见的就是二值化处理,OpenCV自然也会有二值化的相关函数,在OpenCV中大致有几种二值化:

    普通的二值化:通过输入阈值来完成二值化,这个方法需要自己确定二值化的阈值OTSU:大津算法,OpenCV中自带了大津算法的二值化自适应二值化:通过均值或者高斯均值自动计算的二值化方法

    不同二值化

    cv::threshold(src,dst,thresh,255,cv::THRESH_BINARY);

    这个函数最后的一个参数有BINARY和BINARY_INV两种,确定背景是黑色还是白色。

    大津算法

    cv::threshold(src,dst,thresh,255,cv::THRESH_OTSU);

    大津算法只改变了最后的一个参数,其中因为大津算法会自动计算阈值,所以阈值输多少都没关系,因为没用。

    注意 我在使用这个函数的时候就犯过这个错误,这个函数可以接收的只是8UC1类型,也就是8bit单通道的图像,其余类型会报错,不可以使用浮点数等类型。

    自适应二值化

    cv::adaptiveThreshold(image,dst,value,fun,type,size,param); image:原图dst:结果value:二值图的像素灰度值fun:采用的方法ADAPTIVE_THRESH_MEAN_C 和ADAPTIVE_THRESH_GAUSSIAN_Ctype:结果类型THRESH_BINARY和THRESH_BINARY_INVsize:核大小,类似于高斯核param:相当于一个阈值偏移量,最后自动计算得到的阈值会减去这个偏移量
    Processed: 0.009, SQL: 9