日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LOG算子的运用

發(fā)布時間:2025/4/16 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LOG算子的运用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

LOG算子:

在圖像中,邊緣可以看做是位于一階導(dǎo)數(shù)較大的像素處,因此,我們可以求圖像的一階導(dǎo)數(shù)來確定圖像的邊緣,像sobel算子等一系列算子都是基于這個思想的。

但是這存在幾個問題:1. 噪聲的影響,在噪聲點(diǎn)處一階導(dǎo)數(shù)也會取極大值?? 2. 求解極大值的復(fù)雜性

?

所以,有了使用二階導(dǎo)數(shù)的方法。這里主要考慮LoG算子,即高斯-拉普拉斯算子

為什么要使用二階導(dǎo)數(shù)呢?

?

這里要考慮上面說的第二個問題,一階導(dǎo)數(shù)的極大值到了二階導(dǎo)數(shù)對應(yīng)的值就是0了,很顯然求解一個函數(shù)的零點(diǎn)值要比求極大值容易。這個性質(zhì)也被稱為二階導(dǎo)數(shù)過零點(diǎn)(zero-crossing)。

所以,我們就可以利用二階導(dǎo)數(shù)來代替一階導(dǎo)數(shù)了。

而對于上面的第一個問題,也就是為什么要引入高斯算子的原因。我們已經(jīng)知道拉普拉斯算子其實(shí)就是一個二階導(dǎo)數(shù)算子,為什么還要引入高斯呢?

?

高斯算子在圖像處理中的一般的作用其實(shí)大都是進(jìn)行模糊,換句話說它可以很好的抑制噪聲,這樣引入高斯算子我們就克服了噪聲的影響(這也是LoG算子對拉普拉斯算子的改進(jìn)的地方)。

所以,高斯-拉普拉斯算子其實(shí)就是:

先對圖像進(jìn)行高斯模糊,然后再求二階導(dǎo)數(shù),二階導(dǎo)數(shù)等于0處對應(yīng)的像素就是圖像的邊緣。

具體的推導(dǎo)過程可以看一下下面的鏈接:http://fourier.eng.hmc.edu/e161/lectures/gradient/node10.html

---------------------

由于高斯函數(shù)的參數(shù)sigma對高斯算子的影響,所以,如果sigma選取的很小的話,前期的模糊效果很弱,也就可以近似等于拉普拉斯算子了。所以,拉普拉斯算子也可以看做高斯-拉普拉斯算子的一種極限情況。

實(shí)驗(yàn)驗(yàn)證一下高斯-拉普拉斯算子的效果:

從結(jié)果中可以看出來當(dāng)sigma取0.6時,與拉普拉斯算子的效果近似,而當(dāng)sigma取1時,可以達(dá)到比較好的效果

1 I = imread('lena.jpg') ; 2 gray = rgb2gray(I) ; 3 subplot(2,2,1),imshow(gray) ; 4 title('原圖') 5 6 h = fspecial( 'log', 5, 0.6 ) ; 7 log1 = imfilter(gray,h) ; 8 subplot(2,2,2),imshow(log1) ; 9 title('LoG sigma=0.6') ; 10 11 h = fspecial( 'log', 5, 1 ) ; 12 log2 = imfilter(gray,h) ; 13 subplot(2,2,3),imshow(log2) ; 14 title('LoG sigma=1') ; 15 16 h = fspecial( 'laplacian') ; 17 lap = imfilter( gray,h ) ; 18 subplot(2,2,4), imshow(lap) ; 19 title('Laplacian') ;

--------------------------------------------------

我們再從圖像中分析一下sigma對結(jié)果的影響,下面兩圖分別是sigma=0.6和sigma=1時的高斯-拉普拉斯算子的三維圖(縱軸為函數(shù)值):

由圖中可以看出sigma=0.6時的零點(diǎn)數(shù)明顯要多于sigma=1時的,這也證明上面得到的結(jié)果確實(shí)是正確的。

--------------------------------------------------------

這里再多說一句,既然sigma是高斯函數(shù)的參數(shù),那能不能從高斯函數(shù)的角度來說明一下sigma的作用呢?

當(dāng)然可以!!先看下圖:

我們只需要看u=0的三個圖像即可,從圖中可以看出,sigma越小,高斯函數(shù)的能量越集中,不知道哪里學(xué)到過:高斯函數(shù)97%的能量集中在3*sigma的范圍內(nèi)(以u對稱的3*sigma范圍內(nèi))。

那么我們現(xiàn)在就知道了使用高斯函數(shù)對圖像進(jìn)行模糊運(yùn)算或者稱之為卷積運(yùn)算,它起作用比較明顯的區(qū)域就是在距離當(dāng)前像素3*sigma范圍內(nèi)。從此可以看出,sigma越大,高斯函數(shù)能夠處理的鄰域像素?cái)?shù)越多,高斯模糊的效果也就越明顯。


function main() a=imread('xinglong.jpg'); a=rgb2gray(a); e=log_edge(a,0.25); imshow(e) %% function e=log_edge(a, sigma) %功能:實(shí)現(xiàn)LoG算子提取邊緣點(diǎn) %輸入:a-灰度圖像 % sigma-濾波器參數(shù) %輸出:e-邊緣圖像%產(chǎn)生同樣大小的邊緣圖像e,初始化為0. [m,n]=size(a); e=repmat(logical(uint8(0)),m,n); rr=2:m-1;cc=2:n-1; %選擇點(diǎn)數(shù)為奇數(shù)的濾波器的尺寸fsize>6*sigma; fsize=ceil(sigma*3)*2+1; %產(chǎn)生LoG濾波器 op=fspecial('log',fsize,sigma); %將LoG濾波器的均值變?yōu)?. op=op-sum(op(:))/prod(size(op)); %利用LoG算子對圖像濾波 b=filter2(op,a); imshow(b);

總結(jié)

以上是生活随笔為你收集整理的LOG算子的运用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。