zoukankan      html  css  js  c++  java
  • opencv:全局阈值

    图像的二值化分割,最重要的就是计算阈值

    阈值的计算方法很多,基本分为两类,全局阈值与自适应阈值

    OTSU、Triangle




    #include <opencv2/opencv.hpp>
    #include <iostream>
    
    using namespace cv;
    using namespace std;
    
    
    int main(int argc, char** argv)
    {
        Mat src = imread("f:/images/shuang001.jpg");
        if (src.empty())
        {
            printf("Could not find the image!
    ");
            return -1;
        }
    
        namedWindow("input", WINDOW_AUTOSIZE);
        imshow("input", src);
    
        Mat gray, binary;
        cvtColor(src, gray, COLOR_BGR2GRAY);
        imshow("gray", gray);
    
        // 均值分割
        Scalar m = mean(gray);
        printf("means: %.2f
    ", m[0]);
        threshold(gray, binary, m[0], 255, THRESH_BINARY);
        imshow("binary", binary);
    
        // 直方图
        threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);
        imshow("THRESH_OTSU", binary);
    
        threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_TRIANGLE);
        imshow("THRESH_TRIANGLE", binary);
    
        waitKey(0);
        destroyAllWindows();
    
        return 0;
    }
    
  • 相关阅读:
    CCNP-MPLS-标签交换
    Mac地址表、STP与RSTP原理
    mysql 初始数据库简单操作
    异步回调,事件,线程池与协程
    bug问题
    GIL 线程池
    异常处理
    奇怪的东西
    绑定方法
    初体验
  • 原文地址:https://www.cnblogs.com/wbyixx/p/12313675.html
Copyright © 2011-2022 走看看