目錄
一、基礎理論
1、原理
2、程序
3、Laplacian函式
代碼
效果
參考資料
一、基礎理論
1、原理
Laplace算子作為邊緣檢測之一,和Sobel算子一樣也是工程數學中常用的一種積分變換,屬于空間銳化濾波操作,因為影像是二維的,所以需要在兩個方向求導,

定義:
拉普拉斯算子(Laplace Operator)是n維歐幾里德空間中的一個二階微分算子,定義為梯度(▽f)的散度(▽·f),拉普拉斯算子也可以推廣為定義在黎曼流形上的橢圓型算子,稱為拉普拉斯-貝爾特拉米算子,
原理:
拉普拉斯算子是二階微分線性算子,在影像邊緣處理中,二階微分的邊緣定位能力更強,銳化效果更好,因此在進行影像邊緣處理時,直接采用二階微分算子而不使用一階微分,
2、程序
1、一維一階差分公式和二階差分公式分別為:

2、在一個二維函式f(x,y)中,x,y兩個方向的二階差分分別為:

3、所以,Laplace算子的差分形式為:

4、得到卷積核:

5、擴展卷積核
該卷積核在上下左右四個90度的方向上結果相同,也就是說在90度方向上無方向性,為了讓該卷積核在45度的方向上也能具有該性質,對它擴展定義:

3、Laplacian函式
void Laplacian(InputArray src, OutputArray dst, int ddepth, int ksize=1, double scale=1, double delta=0, int borderType=BORDER_DEFAULT )
Laplacian(src, dst, CV_16S, 3); //拉普拉斯變換
// 深度 核大小
代碼
//拉普拉斯變換
#include<opencv2/opencv.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
Mat src, dst, abs_dst_laplace;
int main()
{
src = imread("Resource/test13.jpg");
imshow("原圖", src);
//拉普拉斯變換
Laplacian(src, dst, CV_16S, 3); //拉普拉斯變換
// 深度 核大小
convertScaleAbs(dst, abs_dst_laplace); //將型別轉化為CV_8UC1
imshow("laplacian", abs_dst_laplace);
waitKey(0);
}
效果

參考資料
https://blog.csdn.net/hellocsz/article/details/102485387?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162899470416780357226662%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162899470416780357226662&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-102485387.ecpm_v1_rank_v29&utm_term=%E6%8B%89%E6%99%AE%E6%8B%89%E6%96%AF%E7%AE%97%E5%AD%90&spm=1018.2226.3001.4187
https://www.bilibili.com/video/BV1Fo4y1d7JL?p=34&spm_id_from=pageDriver
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/294351.html
標籤:其他
