Mat HighPass(Mat img)
{
Mat temp;
//GaussianBlur(img, temp, Size(3, 3), 1.6, 1.6);
medianBlur(img, temp, 3);
int r = 10;
Mat diff = r * (img - temp); //高反差保留算法
return diff;
}
#include <opencv2/highgui.hpp>
#include <opencv2/ml.hpp>
//#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
using namespace cv;
using namespace cv::ml;
Mat HighPass(Mat img)
{
Mat temp;
GaussianBlur(img, temp, Size(3, 3), 1.6, 1.6);
//medianBlur(img, temp, 3);
int r = 10;
Mat diff = r * (img - temp); //高反差保留算法
return diff;
}
void main()
{
Mat src = imread(“d:/dong.jpg”);
//Mat dst = Mat::zeros(src.size(), CV_8UC3);
Mat dst = HighPass(src);
imshow("ori", src);
medianBlur(dst, dst, 3);
imshow("res", dst);
Mat gray,gray1;
cvtColor(dst, gray, COLOR_BGR2GRAY);
//threshold(gray, gray1, 50, 255, cv::THRESH_BINARY_INV);
imshow("res1", gray1);
cv::waitKey(0);
}
//留下了一副粉笔画。