编程语言
首页 > 编程语言> > OpenCV-C++ 图像基本阈值操作

OpenCV-C++ 图像基本阈值操作

作者:互联网

阈值类型

阈值产生的算法,阈值类型

代码示例如下:

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;


char output_title[] = "output window";
int threshold_value = 127;
const int MAX_THRESHOLD = 255;

int threshold_type = 2;
const int MAX_THRESHOLD_TYPE = 4;

void Threshold_Demo(int, void*);

Mat src, srcGray, dst;

int main(){

    // 读取图像
    src = imread("/home/chen/dataset/lena.jpg");
    if (src.empty()){
        cout << "could not load image." << endl;
        return -1;
    }
    namedWindow("src", WINDOW_AUTOSIZE);
    imshow("src", src);

    // 创建
    namedWindow(output_title, WINDOW_AUTOSIZE);
    createTrackbar("Threshold: ", output_title, &threshold_value, MAX_THRESHOLD, Threshold_Demo);
    createTrackbar("Type: ", output_title, &threshold_type, MAX_THRESHOLD_TYPE, Threshold_Demo);
    Threshold_Demo(0, 0);

    waitKey(0);

    return 0;
}


void Threshold_Demo(int, void*){
    cvtColor(src, srcGray, COLOR_BGR2GRAY);
    // printf("%d", THRESH_BINARY);  // 0
    // printf("%d", THRESH_BINARY_INV); // 1
    // printf("%d", THRESH_TRUNC);  // 2
    // printf("%d", THRESH_TOZERO); // 3
    // printf("%d", THRESH_TOZERO_INV);  // 4
    threshold(srcGray, dst, threshold_value, MAX_THRESHOLD, threshold_type);
    // threshold(srcGray, dst, 0, 255, THRESH_OTSU | threshold_type);  // 自动计算阈值
    // threshold(srcGray, dst, 0, 255, THRESH_TRIANGLE | threshold_type);  // 自动计算阈值

    imshow(output_title, dst);
}

标签:阈值,int,C++,OpenCV,THRESH,threshold,thresh,灰度
来源: https://www.cnblogs.com/chenzhen0530/p/14645673.html