流程比较简单,图片的灰度化--中值滤波--拉普拉斯滤波检测边缘--二值化
Mat image = imread("lin.jpg",1);
//灰度图
cvtColor(image, image, CV_BGR2GRAY);
const int iMediaFilterSize = 7;
//中值滤波
medianBlur(image, image, iMediaFilterSize);
const int iLaplaceFilterSize = 5;
Mat edge;
//拉普拉斯滤波,进行边缘检测
Laplacian(image, edge, CV_8U, iMediaFilterSize);
//
Mat mask;
const int iEdgeThrehold = 80;
//图像的二值化
threshold(edge, mask, iEdgeThrehold, 255, THRESH_BINARY_INV);
imshow("lin", mask);
效果如下,左侧为原图,右侧为素描图