第十五課 Laplance算子
1.理論
在二階導數的時候,最大變化處的值爲零,即邊緣爲零值,通過二階導數計算,依次理論我們可以計算
圖像二階導數,提取邊緣。
2.API使用
高斯模糊-去噪聲GaussianBlur()
轉換爲灰度圖像cvtColor()
拉普拉斯-二階導數計算Laplancian()
取絕對值convertScaleAbs()
顯示結果
3.代碼演示
#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
using namespace std;
int main(int argc, char**argv)
{
Mat src,dst;
src = imread("H:/pictures/prepic.png");
if (!src.data)
{
cout << "could not load image.." << endl;
return -1;
}
char input_title[] = "input image";
char output_titlle[] = "Laplance result";
namedWindow(input_title, CV_WINDOW_AUTOSIZE);
namedWindow(output_titlle, CV_WINDOW_AUTOSIZE);
imshow("input", src);
Mat gray_src, edge_image;
GaussianBlur(src, dst, Size(3, 3), 0, 0);
cvtColor(dst, gray_src, CV_BGR2GRAY);
Laplacian(gray_src, edge_image, CV_16S, 3);
convertScaleAbs(edge_image, edge_image);
//二值化
threshold(edge_image, edge_image, 0, 255, THRESH_OTSU | THRESH_BINARY);
imshow(output_titlle, edge_image);
waitKey(0);
return 0;
}