導航:首頁 > 源碼編譯 > log邊緣檢測演算法例題

log邊緣檢測演算法例題

發布時間:2022-06-19 19:48:21

『壹』 數字圖像處理的MATLAB邊沿提取演算法

J7為圖像文件
J7=imread(『艦.jpg』);
BW1=edge(J7,'sobel',0.1);
figure(4),imshow(BW1);title('用sobel運算元進行邊緣檢測,判別值為0.1')
BW2=edge(J7,'roberts',0.25);
figure(5),imshow(BW2);title('用roberts運算元進行邊緣檢測,判別值為0.25')
BW3=edge(J7,'prewitt',0.01);
figure(6),imshow(BW3);title('用prewitt運算元進行邊緣檢測,判別值為0.01')
BW4=edge(J7,'log',0.02);
figure(7),imshow(BW4);title('用log運算元進行邊緣檢測,判別值為0.03')
BW5=edge(J7,'canny',0.25);
figure(8),imshow(BW5);title('用canny運算元進行邊緣檢測,判別值為0.5')

『貳』 求數字圖像處理邊緣檢測幾種運算元的matlab程序

我寫幾個吧,你最好還是找書,書上邊緣處理程序很多
邊緣檢測一般有幾步:
1、濾波
2、增強
3、檢測
Roberts運算元,Sobel運算元,Prewitt運算元,Canny運算元,Log運算元
實例:
i=imread('tupian.jpg');
i1=rgb2gray(i);
bw1=edge(i1,'prewitt',0.04);%也可把prewitt換成canny,log,sobel等。閾值為0.04,可改
figure(1),imshow(i);%原圖
figure(2),imshow(i1);%灰度圖
figure(3),imshow(bw1);%prewitt邊緣提取的圖像

『叄』 matlab不使用內置函數edge等等,如何根據原理直接實現LOG運算元

edge不是matlab的內置函數,如何判斷可以用
>>type edge 是否能顯示其函數內容,如能顯示就不是內置函數。
如不用edge函數,可以根據LOG運算元(邊緣檢測演算法)來實現edge函數的功能。
實現LOG運算元的步驟:(1) 採用二維高斯濾波器平滑濾波; (2) 採用二維拉普運算元進行圖像增強; (3) 依據二階導數零交叉進行邊緣檢測。

『肆』 邊緣檢測的邊緣檢測

所謂邊緣是指其周圍像素灰度急劇變化的那些象素的集合,它是圖像最基本的特徵。邊緣存在於目標、背景和區域之間,所以,它是圖像分割所依賴的最重要的依據。由於邊緣是位置的標志,對灰度的變化不敏感,,因此,邊緣也是圖像匹配的重要的特徵。邊緣檢測和區域劃分是圖像分割的兩種不同的方法,二者具有相互補充的特點。在邊緣檢測中,是提取圖像中不連續部分的特徵,根據閉合的邊緣確定區域。而在區域劃分中,是把圖像分割成特徵相同的區域,區域之間的邊界就是邊緣。由於邊緣檢測方法不需要將圖像逐個像素地分割,因此更適合大圖像的分割。 邊緣大致可以分為兩種,一種是階躍狀邊緣,邊緣兩邊像素的灰度值明顯不同;另一種為屋頂狀邊緣,邊緣處於灰度值由小到大再到小的變化轉折點處。 邊緣檢測的主要工具是邊緣檢測模板。我們以一個一維模板為例來考察邊緣檢測模板是如何作用的。模板的作用是將右鄰點的灰度值減去左鄰點的灰度值作為該點的灰度值。在灰度相近的區域內,這么做的結果使得該點的灰度值接近於0;而在邊緣附近,灰度值有明顯的跳變,這么做的結果使得該點的灰度值很大,這樣就出現了上面的結果。這種模板就是一種邊緣檢測器,它在數學上的涵義是一種基於梯度的濾波器,習慣上又稱邊緣運算元。我們知道,梯度是有方向的,和邊緣的方向總是垂直的。模板 是水平方向的,而上面那幅圖象的邊緣恰好是垂直方向的,使用模板 就可以將它檢測出來。如果圖象的邊緣是水平方向的,我們可以用梯度是垂直方向的模板 檢測它的邊緣。如果圖象的邊緣是45。方向的,我們可以用模板檢測它的邊緣。
常用的邊緣檢測模板有Laplacian運算元、Roberts運算元、Sobel運算元、log(Laplacian-Gauss)運算元、Kirsch運算元和Prewitt運算元等。

『伍』 log的演算法描述

LoG運算元也就是 Laplace of Gaussian function(高斯拉普拉斯函數)。常用於數字圖像的邊緣提取和二值化。LoG 運算元源於D.Marr計算視覺理論中提出的邊緣提取思想, 即首先對原始圖像進行最佳平滑處理, 最大程度地抑制雜訊, 再對平滑後的圖像求取邊緣。
由於雜訊點(灰度與周圍點相差很大的像素點)對邊緣檢測有一定的影響,所以效果更好的邊緣檢測器是LoG運算元,也就是Laplacian-Gauss運算元。它把的Gauss平滑濾波器和Laplacian銳化濾波器結合了起來,先平滑掉雜訊,再進行邊緣檢測,所以效果會更好。
常用的LoG運算元是5×5的模板。
LoG運算元 到中心的距離與位置加權系數的關系曲線象墨西哥草帽的剖面,所以LoG運算元也叫墨西哥草帽濾波器。

『陸』 求用Matlab進行邊緣檢測

clear all;
close all;
warning off all;

I = imread('lena.bmp'); %%如果是其他類型圖像,請先轉換為灰度圖
%%沒有雜訊時的檢測結果
BW_sobel = edge(I,'sobel');
BW_prewitt = edge(I,'prewitt');
BW_roberts = edge(I,'roberts');
BW_laplace = edge(I,'log');
BW_canny = edge(I,'canny');
figure(1);
subplot(2,3,1),imshow(I),xlabel('原始圖像');
subplot(2,3,2),imshow(BW_sobel),xlabel('sobel檢測');
subplot(2,3,3),imshow(BW_prewitt),xlabel('prewitt檢測');
subplot(2,3,4),imshow(BW_roberts),xlabel('roberts檢測');
subplot(2,3,5),imshow(BW_laplace),xlabel('laplace檢測');
subplot(2,3,6),imshow(BW_canny),xlabel('canny檢測');

%%加入高斯雜訊(μ=0,σ^2=0.01)檢測結果
I_g1 = imnoise(I,'gaussian',0,0.01);
BW_sobel = edge(I_g1,'sobel');
BW_prewitt = edge(I_g1,'prewitt');
BW_roberts = edge(I_g1,'roberts');
BW_laplace = edge(I_g1,'log');
BW_canny = edge(I_g1,'canny');
figure(2);
subplot(2,3,1),imshow(I_g1),xlabel('加入高斯雜訊(μ=0,σ^2=0.01)圖像');
subplot(2,3,2),imshow(BW_sobel),xlabel('sobel檢測');
subplot(2,3,3),imshow(BW_prewitt),xlabel('prewitt檢測');
subplot(2,3,4),imshow(BW_roberts),xlabel('roberts檢測');
subplot(2,3,5),imshow(BW_laplace),xlabel('laplace檢測');
subplot(2,3,6),imshow(BW_canny),xlabel('canny檢測');

%%加入高斯雜訊(μ=0,σ^2=0.02)檢測結果
I_g2 = imnoise(I,'gaussian',0,0.02);
BW_sobel = edge(I_g2,'sobel');
BW_prewitt = edge(I_g2,'prewitt');
BW_roberts = edge(I_g2,'roberts');
BW_laplace = edge(I_g2,'log');
BW_canny = edge(I_g2,'canny');
figure(3);
subplot(2,3,1),imshow(I_g2),xlabel('加入高斯雜訊(μ=0,σ^2=0.02)圖像');
subplot(2,3,2),imshow(BW_sobel),xlabel('sobel檢測');
subplot(2,3,3),imshow(BW_prewitt),xlabel('prewitt檢測');
subplot(2,3,4),imshow(BW_roberts),xlabel('roberts檢測');
subplot(2,3,5),imshow(BW_laplace),xlabel('laplace檢測');
subplot(2,3,6),imshow(BW_canny),xlabel('canny檢測');

『柒』 如何計算邊緣檢測運算元的邊緣像素、邊緣段以及連續性指標如下圖

close all
clear all
I=imread('tig.jpg'); %讀取圖像
I1=im2double(I); %將彩圖序列變成雙精度
I2=rgb2gray(I1); %將彩色圖變成灰色圖
[thr, sorh, keepapp]=ddencmp('den','wv',I2);
I3=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp); %小波除噪
I4=medfilt2(I3,[9 9]); %中值濾波
I5=imresize(I4,0.2,'bicubic'); %圖像大小
BW1=edge(I5,'sobel'); %sobel圖像邊緣提取
BW2=edge(I5,'roberts'); %roberts圖像邊緣提取
BW3=edge(I5,'prewitt'); %prewitt圖像邊緣提取
BW4=edge(I5,'log'); %log圖像邊緣提取
BW5=edge(I5,'canny'); %canny圖像邊緣提取
h=fspecial('gaussian',5); %高斯濾波
BW6=edge(I5,'zerocross',[ ],h); %zerocross圖像邊緣提取
figure;
subplot(1,3,1); %圖劃分為一行三幅圖,第一幅圖
imshow(I2); %繪圖
figure;
subplot(1,3,1);
imshow(BW1);
title('Sobel運算元');
subplot(1,3,2);
imshow(BW2);
title('Roberts運算元');
subplot(1,3,3);
imshow(BW3);
title('Prewitt運算元');
在讀圖片的時候自己改下片名。

『捌』 分別利用 Roberts、Prewitt、Sobel 和 Log 邊緣檢測運算元,對原圖像進行邊緣檢測,顯示處理前、後的圖像。

clear;
fid=fopen('d:\image\Lena.img','r'); %打開無格式文件
data1=(fread(fid,[256,256],'uint8'))';
subplot(2,3,1),imagesc(data1);
colormap(gray);
title('LENA','Color','r');

subplot(2,3,2);
data2=uint8(data1);
R=edge(data2,'Roberts');
imagesc(R);
title('Roberts檢測運算元');

subplot(2,3,3);
data2=uint8(data1);
Q=edge(data2,'Prewitt');
imagesc(Q);
title('Prewitt檢測運算元');

subplot(2,3,4);
data2=uint8(data1);
S=edge(data2,'Sobel');
imagesc(S);
title('Sobel檢測運算元');

subplot(2,3,5);
data2=uint8(data1);
T=edge(data2,'Log');
imagesc(T);
title('Log檢測運算元');

Matlab中運行過的 正確的!

『玖』 什麼是邊緣檢測

兩個具有不同灰度值的相鄰區域之間總存在邊緣,邊緣是灰度值不連續的表現。由於邊緣是圖像上灰度變化最劇烈的地方,傳統的邊緣檢測就是利用了這個特點,對圖像各個像素點進行微分或求二階微分來確定邊緣像素點。

以下是一段函數是關於邊緣檢測的一些演算法,希望對你有幫助。。

I=imread('D:10.jpg');%讀取圖像

I1=im2double(I);%將彩圖序列變成雙精度

I2=rgb2gray(I1);%將彩色圖變成灰色圖

[thr,sorh,keepapp]=ddencmp('den','wv',I2);

I3=wdencmp('gbl',I2,'sym4',2,thr,sorh,keepapp);%小波除噪

I4=medfilt2(I3,[99]);%中值濾波

I5=imresize(I4,0.8,'bicubic');%圖像大小

BW1=edge(I5,'sobel');%sobel圖像邊緣提取

BW2=edge(I5,'roberts');%roberts圖像邊緣提取

BW3=edge(I5,'prewitt');%prewitt圖像邊緣提取

BW4=edge(I5,'log');%log圖像邊緣提取

BW5=edge(I5,'canny');%canny圖像邊緣提取

h=fspecial('gaussian',5);%高斯濾波

BW6=edge(I5,'zerocross',[],h);%zerocross圖像邊緣提取

figure;

subplot(1,3,1);%圖劃分為一行三幅圖,第一幅圖

imshow(I2);%繪圖

title('原始圖像');%標注

subplot(1,3,2);%第二幅圖

imshow(I3);

title('消噪後圖像');

subplot(1,3,3);%第三幅圖

imshow(I4);

title('中值濾波圖像');

figure;

subplot(1,3,1);

imshow(BW1);

title('Sobel運算元');

subplot(1,3,2);

imshow(BW2);

title('Roberts運算元');

subplot(1,3,3);

imshow(BW3);

title('Prewitt運算元');

figure;

subplot(1,3,1);

imshow(BW4);

title('log運算元');

subplot(1,3,2);

imshow(BW5);

title('Canny運算元');

subplot(1,3,3);

imshow(BW6);

title('Zerocross');

閱讀全文

與log邊緣檢測演算法例題相關的資料

熱點內容
拆二代程序員 瀏覽:396
河北壓縮空氣冷干機生產廠家 瀏覽:578
圖論與java 瀏覽:575
程序員寫代碼告白初音 瀏覽:738
sshpdf 瀏覽:539
windows調用linux 瀏覽:594
如何查找本地伺服器名稱 瀏覽:819
linux文件只讀屬性 瀏覽:585
VNAS技術加密 瀏覽:131
python編程電話費計算話費 瀏覽:463
c編譯文件怎麼改名 瀏覽:626
pdf轉格式軟體 瀏覽:875
單片機原理及應用第二版第八章答案 瀏覽:536
伺服器一百個節點相當於什麼 瀏覽:344
綏化電氣編程培訓 瀏覽:374
輕量應用伺服器怎麼添加軟體上去 瀏覽:813
資產管理pdf 瀏覽:170
製冷壓縮機熱負荷過低 瀏覽:364
伺服器出現兩個IPV4地址 瀏覽:848
宜興雲存儲伺服器 瀏覽:221