opencvC++学习18Laplance算子

理论:

解释:在二阶导数的时候,最大变化处的值为零即边缘是零值。

通过二阶导数计算,依据此理论我们可以计算图像二阶导数,提取边缘。

代码:

#include <opencv2\opencv.hpp>

using namespace cv;
using namespace std;


int main()
{
	Mat src, dst;
	src = imread("D:/opencvSRC/test.jpg");
	if (src.empty()) {

		printf("load image error!\n");
	}
	namedWindow("src", CV_WINDOW_AUTOSIZE);
	imshow("src", src);
	
	Mat gray_src, laplacion;
	GaussianBlur(src, dst, Size(3, 3), 0, 0, 4);
	cvtColor(dst, gray_src, CV_BGR2GRAY);
	imshow("gray_src", gray_src);

	Laplacian(gray_src, laplacion, CV_16S);
	convertScaleAbs(laplacion, laplacion);

	threshold(laplacion, laplacion, 0, 255, THRESH_BINARY | THRESH_OTSU);
	imshow("laplacion", laplacion);
	
	
	waitKey(0);
	return 0;
}

效果:

猜你喜欢

转载自blog.csdn.net/xiansong1005/article/details/80752668