边缘提取算子检测比较
1、sobert、robert和prewitt算子檢測圖像邊緣
 I=imread(‘mc.jpg’);i2=im2double(I); ihd=rgb2gray(i2);
 [thr,sorh,keepapp]=ddencmp(‘den’,‘wv’,ihd);
 ixc=wdencmp(‘gbl’,ihd,‘sym4’,2,thr,sorh,keepapp);
 figure,imshow(ixc),title('消噪后圖像 ');
 k2=medfilt2(ixc,[7,7]); figure,imshow(k2),title(‘中值濾波’);
 isuo=imresize(k2,0.25,‘bicubic’);
 esobel=edge(isuo,‘sobel’);erob=edge(isuo,‘roberts’);eprew=edge(isuo,‘prewitt’);
 subplot(2,2,1);imshow(isuo);title(‘前期處理圖像’);
 subplot(2,2,2);imshow(esobel);title(‘sobel算子提取’);
 subplot(2,2,3);imshow(erob);title(‘roberts算子提取’);
 subplot(2,2,4);imshow(eprew);title(‘prewitt算子提取’);
 
拉普拉斯算子、canny算子
 I=imread(‘mc.jpg’);i2=im2double(I); ihd=rgb2gray(i2);
 [thr,sorh,keepapp]=ddencmp(‘den’,‘wv’,ihd);
 ixc=wdencmp(‘gbl’,ihd,‘sym4’,2,thr,sorh,keepapp);
 figure,imshow(ixc),title('消噪后圖像 ');
 k2=medfilt2(ixc,[7,7]);
 isuo=imresize(k2,0.25,‘bicubic’);
 elog=edge(isuo,‘log’);ecanny=edge(isuo,‘canny’);
 subplot(2,2,1);imshow(isuo);title(‘前期處理圖像’);
 subplot(2,2,2);imshow(k2),title(‘中值濾波’);
 subplot(2,2,3);imshow(ecanny);title(‘canny算子提取’);
 subplot(2,2,4);imshow(elog);title(‘log算子提取’);
 
比較結果:
 Roberts算子檢測方法對具有陡峭的低噪聲的圖像處理效果較好,但是利用roberts算子提取邊緣的結果是邊緣比較粗,因此邊緣的定位不是很準確。
 Sobel算子檢測方法對灰度漸變和噪聲較多的圖像處理效果較好,sobel算子對邊緣定位不是很準確,圖像的邊緣不止一個像素。
 Prewitt算子檢測方法對灰度漸變和噪聲較多的圖像處理效果較好。但邊緣較寬,而且間斷點多。
 Laplacian算子法對噪聲比較敏感,所以很少用該算子檢測邊緣,而是用來判斷邊緣像素視為與圖像的明區還是暗區。
 Canny方法不容易受噪聲干擾,能夠檢測到真正的弱邊緣。優點在于,使用兩種不同的閾值分別檢測強邊緣和弱邊緣,并且當弱邊緣和強邊緣相連時,才將弱邊緣包含在輸出圖像中。
總結
以上是生活随笔為你收集整理的边缘提取算子检测比较的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Tips:重装系统后Anaconda目录
- 下一篇: 如何将图片中的一个任意四边形区域的图像转
