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 #include //#include #include #include 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);
}
//留下了一副粉笔画。