Matlab中邊緣提取方法簡析

2021-09-07 06:37:49 字數 1638 閱讀 9866

1、matlab簡述

matlab是國際上最流行的科學與工程計算的軟體工具,它起源於矩陣運算,已經發展成一種高度整合的計算機語言。有人稱它為「***」計算機語言,它提供了強大的科**算、靈活的程式設計流程、高質量的圖形視覺化介面設計、便捷的與其它程式和語言介面的功能。隨著matlab語言功能越來越強大,不斷適應新的要求並提出新的解決方法,可以預見,在科**算,自動控制與科學繪圖領域,matlab語言將長期保持其獨一無二的地位。

2、幾種常用的邊緣檢測運算元

邊緣是影象的最重要的特徵,邊緣是指周圍畫素灰度有階躍變化或屋頂變化的那些畫素的集合。邊緣檢測主要是灰度變化的度量、檢測和定位。有很多種不同的邊緣檢測方法,同一種方法使用的濾波器也不盡相同。影象邊緣檢測就是研究更好的邊緣檢測方法和檢測運算元。

邊緣檢測的基本思想首先是:

(1)利用邊緣增強運算元,突出影象中的區域性邊緣,

(2)然後定義象素的「邊緣強度」,通過設定閾值的方法提取邊緣點集。

由於雜訊和模糊的存在,監測到的邊界可能會變寬或在某點處發生間斷。因此,邊界檢測包括兩個基本內容:

i. 用邊緣運算元提取出反映灰度變化的邊緣點集

ii. 在邊緣點集合中剔除某些邊界點或填補邊界間斷點,並將這些邊緣連線成完整的線

常用的檢測運算元有微分運算元、拉普拉斯高斯運算元和canny運算元。在matlab影象處理工具箱中,提供了edge函式利用以上運算元來檢測灰度影象的邊緣。

3、邊緣檢測運算元舉例(matlab)

數字影象處理技術中常用的邊緣檢測運算元有sobel運算元,roberts運算元,prewitt運算元,log運算元,canny運算元。其中canny運算元檢測效果最好。

matlab實現演算法如下:

i=imread('lena.bmp');% 提取影象

bw1=edge(i,'sobel'); %用sobel運算元進行邊緣檢測

bw2=edge(i,'roberts');%用roberts運算元進行邊緣檢測

bw3=edge(i,'prewitt'); %用prewitt運算元進行邊緣檢測

bw4=edge(i,'log'); %用log運算元進行邊緣檢測

bw5=edge(i,'canny'); %用canny運算元進行邊緣檢測

h=fspecial('gaussian』,5);

bw6=edge(i,』canny』);

subplot(2,3,1), imshow(bw1);

title(『sobel edge check』);

subplot(2,3,2), imshow(bw2);

title(『sobel edge check』);

subplot(2,3,3), imshow(bw3);

title(『prewitt edge check』);

subplot(2,3,4), imshow(bw4);

title(『log edge check』);

subplot(2,3,5), imshow(bw5);

title(『canny edge check』);

subplot(2,3,6), imshow(bw6);

title(『gasussian&canny edge check』);%此為用高斯濾波後canny運算元邊緣檢測結果

邊緣特徵提取方法

邊緣檢測是圖形影象處理 計算機視覺和機器視覺中的乙個基本工具,通常用於特徵提取和特徵檢測,旨在檢測一張數字影象中有明顯變化的邊緣或者不連續的區域,在一維空間中,類似的操作被稱作步長檢測 step detection 邊緣是一幅影象中不同屈原之間的邊界線,通常乙個邊緣影象是乙個二值影象。邊緣檢測的目的...

邊緣特徵提取方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!邊緣檢測是圖形影象處理 計算機視覺和機器視覺中的乙個基本工具,通常用於特徵提取和特徵檢測,旨在檢測一張數字影象中有明顯變化的邊緣或者不連續的區域,在一維空間中,類似的操作被稱作步長檢測 step detection 邊緣是一幅影象中不同屈原之間的邊...

簡析陣列方法

var arr 2 11,50 7,9 console.log arr.sort 按照字串按位比較方式來判斷大小的 arr.sort function a,b console.log arr var arr 1 2,3 4 1234 var str arr.join console.log str,...