OpenCV--基本阈值操作

阈值二值化(threshold binary)

这里写图片描述
蓝色线对应值为选定的阈值。所有像素值小于这一值的设定为0,否则设定为最大值1。


阈值反二值化(threshold binary inverted)

这里写图片描述
蓝色线对应值为选定的阈值。所有像素值小于这一值的设定为1,否则设定为最小值0。


截断(truncate)

这里写图片描述
像素值大于阈值的就设定为阈值大小,否则保持不变。


阈值取零(threshold to zero)

这里写图片描述
像素值小于阈值的全部设为0,大于的保持不变。


阈值反取零(threshold to zero inverted)

这里写图片描述
像素值大于阈值的全部设为0,小于的保持不变。


OpenCV提供的阈值操作

提供API:

double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)

实例代码:

#include "opencv2/opencv.hpp"
#include "iostream"

using namespace cv;
using namespace std;

int value = 127;//选定的阈值
int maxValue = 255;//像素最大值
int type=0;
int maxType=4;
char *outPut = "阈值化";
Mat src,dest,gray;

void CallBackFun2(int,void*);

void ThresholdOper(){
    src = imread("lena.jpg");
    if(!src.data){
        cout << "图像打开失败!" << endl;
        return ;
    }
    namedWindow("原图",CV_WINDOW_AUTOSIZE);
    imshow("原图",src);
    namedWindow(outPut,CV_WINDOW_AUTOSIZE);

    createTrackbar("value",outPut,&value,maxValue,CallBackFun2);
    createTrackbar("type",outPut,&type,maxType,CallBackFun2);
    CallBackFun2(0,0);

    cvWaitKey();
}

void CallBackFun2(int,void*){
    cvtColor(src,gray,CV_RGB2GRAY);
    /*
    double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)
    thresh – 选定阈值.
    maxval – maximum value to use with the THRESH_BINARY and THRESH_BINARY_INV thresholding types.
    type
            THRESH_BINARY

            THRESH_BINARY_INV

            THRESH_TRUNC

            THRESH_TOZERO

            THRESH_TOZERO_INV
    */
    threshold(gray,dest,value,maxValue,type);

    imshow(outPut,dest);
    return ;
}

int main(){
    ThresholdOper();
    return 0;
}

这里写图片描述

对于阈值的选定我们可以自己指定也可以让程序自己计算,使用参数:THRESH_OTSU .

threshold(gray,dest,value,maxValue,THRESH_OTSU | type);

使用程序计算的阈值后即使我们拖动滑动条也无法改变阈值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值