區域和輪廓只包含對分割結果的原始描述,在實際應用中我們還需要從區域或輪廓中確定一個或多個特征量。這些確定的特征量被稱為特征。
確定特征的過程被稱為圖像特征提取。
一、概述
1.圖像特征的分類
(1)圖像的視覺特征
邊緣、輪廓、形狀、紋理和區域等。
(2)圖像的統計特征
灰度直方圖特征、矩特征,其中矩特征包括均值、方差、峰度及熵特征等。
(3)圖像變換系數特征
傅立葉變換、離散余弦變換、小波變換等。
(4)圖像代數特征
矩陣的奇異值
2. 特征提取與特征選擇
(1)特征選擇
從一組特征中挑選出一些最有效的特征,以達到降低特征空間維數的目的。
(2)特征提取
對原始特征進行變換得到的這些有利于分類、更本質、更少的新特征的過程。
二、興趣點提取
1.什么是興趣點
興趣點是指圖像信號在二維空間上發生變化的區域,通常情況下包括拐角點、交點和紋理等顯著變化區域。
2.興趣點標定的方法
(1)基于輪廓線的方法
輪廓線具有曲率變化的特征,可歸類為結點,端點等類型。如在圖像中尋找脊和谷的方法對興趣點進行標定。
(2)基于圖像強度的方法
信號的自相關函數檢測特征點,灰度值的差大于某個門限時即認為該點是興趣點。
(3)基于參數模型的方法
使用高斯卷積模型對拐角進行識別, 使用最小化方法,使得模板與觀測信號最佳匹配。
3.興趣點的表達方法
(1)尺度不變特征變換(Scale-invariant feature transform,SIFT)
使用了128維的向量對興趣點特征進行表達,該向量通過Lowe建立的碼表形成。該方法可以做到縮放不變、亮度不變的特性。
(2)可控濾波器和梯度不變方法
使用高斯濾波器的方法求圖像的梯度,具有長度為13的維數。
(3)區域矩不變特性
通過改變統計矩的組合,適用于圖像的多種不變特性的應用。
(4)頻域分析法
通過Gabor濾波器來捕捉圖像在頻率和方向上的細微變化,描述的維度很高。
三、Harris角點算法
1.概述
當滑動窗口處于一個興趣點發生的地方,無論從哪個方向移動該窗口,都會發生圖像強度(灰度值)的劇烈變化。
基于圖像灰度的方法通過計算點的曲率及梯度來檢測角點,避免了第一類方法存在的缺陷,此類方法主要有Moravec算子、Forstner算子、Harris算子、SUSAN算子等。
2.原理
圖像窗口滑動后灰度值變化計算:
小距離窗口滑動近似計算:
首先采用Sobel算子計算出梯度Ix和Iy,再逐點計算其乘積,最后使用高斯窗對該乘積圖像的所有像素點進行卷積即可。
img=imread('F:lena.png'); imshow(img); img = rgb2gray(img); %轉換為灰度圖像 img =double(img); [m n]=size(img); %獲取圖像尺寸 tmp=zeros(m+2,n+2); %創建空矩陣tmp tmp(2:m+1,2:n+1)=img; %將img賦值給tmp矩陣 Ix=zeros(m+2,n+2); Iy=zeros(m+2,n+2); E=zeros(m+2,n+2); %創建空矩陣Ix,Iy,E Ix(:,2:n)=tmp(:,3:n+1)-tmp(:,1:n-1); %求橫向梯度Iy(2:m,:)=tmp(3:m+1,:)-tmp(1:m-1,:); %求縱向梯度 Ix2=Ix(2:m+1,2:n+1).^2; %求梯度方向乘積 Iy2=Iy(2:m+1,2:n+1).^2; Ixy=Ix(2:m+1,2:n+1).*Iy(2:m+1,2:n+1); h=fspecial(‘gaussian’,[7 7],2); %使用高斯核進行加權 Ix2=filter2(h,Ix2); Iy2=filter2(h,Iy2); Ixy=filter2(h,Ixy); Rmax=0; R=zeros(m,n); for i=1:m for j=1:n M=[Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)]; R(i,j)=det(M)-0.06*(trace(M))^2; %計算角點量 if R(i,j)>Rmax Rmax=R(i,j); %閾值判斷 end end end re=zeros(m+2,n+2); tmp(2:m+1,2:n+1)=R; img_re=zeros(m+2,n+2); img_re(2:m+1,2:n+1)=img; for i=2:m+1 for j=2:n+1 if tmp(i,j)>0.02*Rmax &&... tmp(i,j)>tmp(i-1,j-1) && tmp(i,j)>tmp(i-1,j) && tmp(i,j)>tmp(i-1,j+1) &&... tmp(i,j)>tmp(i,j-1) && tmp(i,j)>tmp(i,j+1) &&... tmp(i,j)>tmp(i+1,j-1) && tmp(i,j)>tmp(i+1,j) && tmp(i,j)>tmp(i+1,j+1) img_re(i,j)=255; %標記角點 end end end img_re=mat2gray(img_re(2:m+1,2:n+1)); figure,imshow(img_re); %恢復并顯示圖像
四、直線提取
1.Hough變換原理
在圖像空間XY里,設所有過點(x,y)的直線都滿足方程:
式中,p為直線的斜率,q為直線的截距。也可以寫成:
式中表示參數空間PQ中過點(p,q)的一條直線。圖像空間到參數空間之間的轉換可以用圖表示:
2.直線提取原理
開始時,置數組A為零,然后對每一個圖像空間中的給定點,讓θ取遍區間上所有可能的值,并根據直線公式算出對應的ρ,再根據和的值(設都已經取整)對A累加:
對圖像遍歷后,上式的值就是在點(θ,ρ)處共線點的個數。值(θ,ρ)也給出了直線方程的參數,這樣就得到了點所在的線。
3.MATLAB編程實現
img = imread(rg.bmp'); figure(1),subplot(1,2,1); imshow(img); title('原始圖像'); img=rgb2gray(img); % 灰度圖像subplot(1,2,2);imshow(img); title('灰度圖像'); thresh=[0.01,0.10]; %敏感度閾值 sigma=3; %定義高斯參數 f = edge(double(img),'canny',thresh,sigma); %邊緣檢測 figure(2), imshow(f); title('canny 邊緣檢測'); % 檢測函數; [H, theta, rho]= hough(f,'Theta', 20:0.1:75); %0-1 % H->累計數組 , thetaH:對應的θ,實際上H的大小就是Rho×Theta % Rho:H對應的ρ peak=houghpeaks(H,1); %峰值提取 hold on %保留當前的圖和特定的坐標軸屬性,以便后續的繪圖命令添加到現有的圖表。 lines=houghlines(f,theta,rho,peak); %得到線段信息 figure(3);imshow(f,[]); title('霍夫變換檢測結果'); hold on ; for k=1:length(lines) xy=[lines(k).point1;lines(k).point2]; plot(xy(:,1),xy(:,2),'LineWidth',4,'Color',[.6 .6 .6]); end
本文來源于CSDN博主iutangplease
審核編輯:湯梓紅
-
濾波器
+關注
關注
160文章
7727瀏覽量
177672 -
圖像
+關注
關注
2文章
1083瀏覽量
40415 -
機器視覺
+關注
關注
161文章
4345瀏覽量
120108
原文標題:機器視覺(七):圖像特征提取
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論