#include <iostream>
#include <opencv2/opencv.hpp>
int main(int argc, char** argv)
{
cv::Mat image = cv::imread("E://learning_opencv3//learning_opencv3//faces.png", CV_LOAD_IMAGE_GRAYSCALE);
if (image.empty())
{
std::cout << "read image failure" << std::endl;
return -1;
}
// 全局二值化
int th = 100;
cv::Mat global;
cv::threshold(image, global, th, 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;
}