opencv 自适应二值化

//图片读入时注意图片格式,如果格式不符合转化为符合格式再运行
#include <iostream> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv) { cv::Mat image = cv::imread("../test.bmp", CV_LOAD_IMAGE_GRAYSCALE); imshow("testSrc", image); if (image.empty()) { std::cout << "read image failure" << std::endl; return -1; } // 全局二值化 int th = 100; cv::Mat global; cv::threshold(image, global, 70, 255, CV_THRESH_BINARY_INV); // 局部二值化 int blockSize = 25; int constValue = 10; cv::Mat local; cv::adaptiveThreshold(image, local, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY_INV, blockSize, constValue); cv::imwrite("global.jpg", global); cv::imwrite("local.jpg", local); cv::imshow("globalThreshold", global); cv::imshow("localThreshold", local); cv::waitKey(0); return 0; }

原图:

全局二值化效果图

自适应二值化

原文地址:https://www.cnblogs.com/begoogatprogram/p/6071304.html