理论:
解释:在二阶导数的时候,最大变化处的值为零即边缘是零值。
通过二阶导数计算,依据此理论我们可以计算图像二阶导数,提取边缘。
代码:
#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;
}