opencvC++,图像二值化处理

 全局——大津法
#include
#include
#include //添加让opencv函数可用

using namespace std;
using namespace cv;

int main()
{
    Mat img = imread("D:\\Softstore\\VS2022\\project\\Project1\\name.png");//读取函数
        if (img.empty())
        {
            cout << "Error:could not load image" << endl;//读不到图,报错
            return 0;
        }

    Mat gray;
    cvtColor(img, gray, CV_BGR2GRAY);//彩色转灰度图

    Mat dst;
    threshold(gray, dst, 125, 255, CV_THRESH_OTSU);//大津法只能灰度图,灰度图转二值化

    imshow("src", img);
    imshow("gray", gray);
    imshow("dst", dst);
    waitKey(0);

    return 0;
}

局部自适应算法

#include
#include
#include //添加让opencv函数可用

using namespace std;
using namespace cv;

int main() {
    Mat src = imread("D:\\LenovoSoftstore\\VS2022\\project\\图像二值化\\name.png");//读图
    if (!src.data)
    {
        cout << "could not load image." << endl;
        return -1;
    }
    namedWindow("src", WINDOW_AUTOSIZE);//自适应算法
    imshow("src", src);//错误图像

    Mat srcGray;
    cvtColor(src, srcGray, COLOR_BGR2GRAY);
    namedWindow("srcGray", WINDOW_AUTOSIZE);
    imshow("srcGray", srcGray);

    Mat srcBinary;
    adaptiveThreshold(~srcGray, srcBinary, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 11, -2);
    namedWindow("srcBinary", WINDOW_AUTOSIZE);
    imshow("srcBinary", srcBinary);


    waitKey(0);
    return 0;
}

#include //添加让opencv函数可用

你可能感兴趣的:(学习笔记,opencv,c++,人工智能)