#include <iostream>
#include<opencv2/opencv.hpp>
#include "math.h"
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat src,dst;//初始化一个操作对象
src = imread("C:/Users/JAY/Desktop/Others/lena.jpg");
if (!src.data)//判断图片是否加载进来
{
cout << "不能加载图片" << endl;
return -1;
}
namedWindow("加载的图片", WINDOW_AUTOSIZE);
imshow("加载的图片", src);//""内命名一致,才能显示在一个窗口
Mat gray_src, laplance;
GaussianBlur(src, dst, Size(3, 3),0,0,4);//高斯模糊 – 去噪声
cvtColor(dst, gray_src, CV_BGR2GRAY);//转换为灰度图像
Laplacian(gray_src, laplance, CV_16S, 3);//拉普拉斯 – 二阶导数计算
convertScaleAbs(laplance, laplance);//取绝对值
threshold(laplance, laplance, 0, 255, THRESH_OTSU | THRESH_BINARY);//进一步处理,设定阈值
imshow("拉普拉斯算子结果图", laplance);
waitKey(0);
return 0;
}
结果