laplace變換 邊緣檢測

2021-06-18 06:44:47 字數 1885 閱讀 8212

laplace

計算影象的 laplacian 變換

void cvlaplace( const cvarr* src, cvarr* dst, intaperture_size=3 );

src

輸入影象.

dst

輸出影象.

aperture_size

核大小 (與 cvsobel 中定義一樣).

函式 cvlaplace 計算輸入影象的 laplacian變換,方法是先用 sobel 運算元計算二階 x- 和 y- 差分,再求和:

對 aperture_size=1 則給出最快計算結果,相當於對影象採用如下核心做卷積:

類似於 cvsobel 函式,該函式也不作影象的尺度變換,所支援的輸入、輸出影象型別的組合和cvsobel一致。

注意:

opencv

裡面拉普拉斯變換要求輸出影象的深度比輸入影象深度要大。如輸入深度為8則輸出應該為16;如果深度不對的話會報錯。使用cvconvertscaleabs將生成的16位影象轉換為8位(說明最下邊)。

例:

#include

#include

int main(int argc, char ** argv)

結果:

cvconvertscaleabs

該函式是opencv中的函式。   函式作用:

使用線性變換轉換輸入陣列元素成8位無符號整型

函式原型:

void cvconvertscaleabs( const cvarr* src, cvarr*dst, double scale=1, double shift=0 );

#define cvcvtscaleabs cvconvertscaleabs

其中引數含義:

src : 原陣列

dst :輸出陣列 (深度為 8u).

scale :比例因子.

shift :原陣列元素按比例縮放後新增的值。

函式 cvconvertscaleabs 與前一函式是相同的,但它是存貯變換結果的絕對值:

dst(i)=abs(src(i)*scale + (shift,shift,...))

函式只支援目標數陣列的深度為 8u (8-bit 無符號) , 對於別的型別函式仿效於cvconvertscale 和 cvabs 函式的聯合 。

**:

imgproc模組 Laplace邊緣檢測運算元

1.目的 1 如何使用opencv函式laplacian實現laplacian運算元的離散模擬 2.原理 在一階導數的極值位置,二階導數為0。所以我們也可以用這個特點來作為檢測影象邊緣的方法。laplacian運算元的定義 opencv函式 laplacian 實現了laplacian運算元。實際上...

小波變換邊緣提取程式

1.小波變換邊緣提取程式 clear all load wbarb 小波變換邊緣提取程式 i ind2gray x,map 檢索圖轉成灰度圖 imshow i i1 imadjust i,stretchlim i 0,1 調整影象的畫素值,可以改變對比度和顏色 figure imshow i1 n,...

Laplace 運算元 邊界檢測

取second derivative得到 變化最大的地方,一階導數最大,二階導數為0,前者是sobel運算元所為,後者便是 laplace 運算元所為 因為影象是2d的,所以對兩個方向求二階導數 先濾波,將雜訊去掉 cvtcolor src,src gray,color bgr2gray 轉化成灰度...