Primitive Erkennung

Primitive Erkennung

Konzept: Primitive Erkennung bezieht sich auf den Prozess der Erkennung und Identifizierung grundlegender Formen oder spezifischer lokaler Muster in Bildern im Bereich Computer Vision und Mustererkennung. Primitive können einfache geometrische Formen wie Liniensegmente, Kreise, Rechtecke usw. oder komplexere lokale Bildstrukturen wie Ecken, Texturen usw. sein.

1. Kantenerkennung
Kante ist das diskontinuierliche Ergebnis drastischer Änderungen im Grauwert von Pixeln im Bild. Eine Kante ist eine einem einzelnen Pixel zugewiesene Eigenschaft, die mit den Verlaufseigenschaften einer Bildfunktion innerhalb einer Nachbarschaft dieses Pixels zusammenhängt.

Kantengröße: Die Größe des Gradienten.
Kantenrichtung: Verlaufsrichtung um -90 Grad gedreht.
Prinzip der Kantenerkennung
(Die Kantenerkennung ist sowohl die Grundlage der allgemeinen Primitiverkennung als auch der erste Schritt bei der grenzenbasierten Bildsegmentierung.)
Kantenerkennungsalgorithmen: Sobel-, Laplace- und Canney-Operatoren.

2. Konzept der Eckenerkennung (Conner)
: Die Eckenerkennung ist eine Schlüsselaufgabe im Bereich Computer Vision. Ziel ist es, die Position von Eckpunkten in Bildern zu erkennen. Ein Eckpunkt ist eine spezielle Pixelposition im Bild, und sein umgebender Bereich weist große Gradientenänderungen in verschiedene Richtungen auf. Eckpunkte stellen in der Regel Schnittpunkte oder Wendepunkte von Objektkanten dar und haben die Eigenschaft, die Stabilität bei unterschiedlichen Betrachtungswinkeln und Maßstäben aufrechtzuerhalten.

Das Hauptziel der Eckenerkennung besteht darin, Pixelpositionen im Bild zu finden, die die folgenden Eigenschaften aufweisen :
1. Graugradientenänderungen: Der Bereich um das Pixel an der Ecke weist offensichtliche Graugradientenänderungen in verschiedene Richtungen auf, was bedeutet, dass in verschiedene Richtungen Kanten, die Graustufenänderungen erfahren, konvergieren an diesem Punkt.
2. Isolation: Eckpunkte sind normalerweise relativ isolierte Merkmalspunkte im Bild, mit offensichtlichen Graustufenunterschieden zu Pixeln im umgebenden Bereich.

Zu den gängigen Eckerkennungsalgorithmen gehören die folgenden:
1. Harris-Eckenerkennungsalgorithmus: Bewerten Sie den Antwortwert des Eckpunkts durch Berechnen des Graugradienten und der Kovarianzmatrix der Nachbarschaft um das Pixel. Pixel mit hohen Antwortwerten gelten als Eckpunkte.
2. Shi-Tomasi-Eckenerkennungsalgorithmus: Basierend auf einer verbesserten Version des Harris-Algorithmus und unter Verwendung des minimalen Eigenwerts als Maß für die Eckempfindlichkeit können Eckpunkte besser ausgewählt werden.
3. SCHNELLER Eckenerkennungsalgorithmus: Ein schneller Eckenerkennungsalgorithmus, der Eckpunkte durch effizienten Pixelvergleich in der kreisförmigen Nachbarschaft um das Pixel bestimmt.
4. SIFT-Algorithmus (Scale Invariant Feature Transform): Ein auf dem Skalenraum basierender Algorithmus zur Merkmalserkennung und -beschreibung, der in der Lage ist, Eckpunkte unter Maßstabs- und Rotationsänderungen zu erkennen.
Eckenerkennung

3. Hough-Transformationskonzept
: Hough-Transformation ist eine Technologie, die häufig in der Bildverarbeitung und Computer Vision verwendet wird und zur Erkennung geometrischer Formen in Bildern, insbesondere gerader Linien und Kreise, verwendet wird.

Häufige Anwendungen zur Erkennung von Hough-Transformationen:

1. Erkennung gerader Linien: Mithilfe der Hough-Transformation können gerade Linien in Bildern erkannt werden. Es findet alle möglichen geraden Linien in einem Bild und liefert deren parametrische Darstellung (normalerweise in Polarform). Dies ist nützlich für die Kantenerkennung und Liniensegmentierung in Bildern.

2. Kreiserkennung: Die Hough-Transformation kann auch zur Erkennung von Kreisen in Bildern verwendet werden. Ähnlich wie bei der Linienerkennung kann es alle möglichen Kreise im Bild finden und deren parametrische Darstellungen liefern. Dies ist nützlich für die Erkennung und Verfolgung kreisförmiger Objekte, beispielsweise für die Zielerkennung und -verfolgung in der Bildverarbeitung.

3. Kurvenerkennung: Neben geraden Linien und Kreisen kann die Hough-Transformation auch zur Erkennung von Kurven anderer Formen verwendet werden. Wenn Sie beispielsweise die mathematische Gleichungsform der Kurve kennen, die Sie erkennen möchten, können Sie die Hough-Transformation verwenden, um die Kurven im Bild zu finden, die zu dieser Gleichung passen.

Lineare Erkennung

! ! !
Das folgende Beispiel verwendet den SUSAN-Operator zur Eckpunkterkennung und die Hough-Transformation zur Geradenerkennung;

Ausstellungsstückmatlab代码

1. SUSAN-Bediener-Eckenerkennung

clear;
clc;
% 读取图像
Image=imread('susan.tif');  
% 转化为灰度图像
%Image=rgb2gray(Image);
% 显示图像
%imshow(Image);
% 获取图像高宽(行烈)
[ImageHeight,ImageWidth]=size(Image);
% 这一步没太大必要
%Image=double(Image);
% 判断灰度相近的阈值
threshold=45;  
% 当前像素和窗体内像素差别在t以下的个数,即相似的个数
usan=[];
% 计算以像素为中心的窗体内包含的
% 包含37个像素的圆窗口,面积为12*pi=37,因此是以sqrt(12)为半径的原
% 没有在外围扩展图像,最终图像会缩小
for i=4:ImageHeight-3         
   for j=4:ImageWidth-3 
        %从原图中截取7*7的区域再在其中挑选圆窗
        tmp=Image(i-3:i+3,j-3:j+3);  
        %c表示灰度值相近的程度,越大越相近
        c=0;
        for p=1:7
           for q=1:7
               %7*7的区域中选取圆窗包含的像素
                if (p-4)^2+(q-4)^2<=12 
                    %usan(k)=usan(k)+exp(-(((img(i,j)-tmp(p,q))/t)^6));
                    %判断灰度是否相近,t是自己设置的
                    if abs(Image(i,j)-tmp(p,q))<threshold  
                        c=c+1;
                    end
                end
           end
        end
        usan=[usan c];
   end
end
%相当于进一步调整阈值,在threshold的基础上进一步减少角点个数
g=2*max(usan)/3;
for i=1:length(usan)
   if usan(i)<g 
       usan(i)=g-usan(i);
   else
       usan(i)=0;
   end
end
% 由于usan是一维的,所以要重新变换为二维,对应图像位置
imgn=reshape(usan,[ImageWidth-6,ImageHeight-6])';
%figure;
%imshow(imgn)
%非极大抑制
[m n]=size(imgn);
re=zeros(m,n);
for i=2:m-1
   for j=2:n-1 
        if imgn(i,j)>max([max(imgn(i-1,j-1:j+1)) imgn(i,j-1) imgn(i,j+1) max(imgn(i+1,j-1:j+1))]);
            re(i,j)=1;
        else
            re(i,j)=0;
        end
   end
end
figure;
imshow(Image)
hold on;
[x,y]=find(re==1);
plot(y,x,'*')

Anzeige der Laufergebnisse:

Graustufenbild: Graustufenbild
Kantenerkennung:
Kantenerkennung
Eckenerkennung:
Eckenerkennung

2. Hough-Transformations-Geradenerkennung

Ausstellungsstückmatlab代码

clear;
close all;

img = imread('hough.jpg');
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,5);  %峰值提取
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',[1,0,0]);  
end  

Anzeige der Laufergebnisse:

Originalbild und Graustufenbild
raffinierte Kantenerkennung
Hough-Transformationserkennung

Zusammenfassen:

Der SUSAN-Operator (Smallest Univalue Segment Assimilating Nucleus) ist ein Eckerkennungsalgorithmus, der häufig in der Bildverarbeitung verwendet wird, während die Hough-Transformation eine Technik zur Geradenerkennung ist. Im Folgenden werde ich ihre jeweiligen Eigenschaften vorstellen:

Merkmale des SUSAN-Operators zur Eckenerkennung:

  1. Verlässt sich nicht auf die Gradienteninformationen des Bildes: Der SUSAN-Operator basiert auf den statistischen Grauwertinformationen um das Pixel herum und muss den Gradienten des Bildes nicht berechnen. Dies macht es robuster gegenüber Geräuschen.
  2. Es weist eine gewisse Robustheit gegenüber Beleuchtungsänderungen auf: Der SUSAN-Operator bestimmt den Eckpunkt, indem er die Graustufendifferenz zwischen den Pixeln in der Nachbarschaft um das Pixel und dem zentralen Pixel vergleicht. Daher kann eine effektive Eckenerkennung auch dann durchgeführt werden, wenn es bestimmte Beleuchtungsänderungen im Bild gibt.
  3. Skaleninvarianz: Der SUSAN-Operator kann Eckpunkte auf Bildern unterschiedlicher Maßstäbe erkennen. Es verwendet einen einstellbaren Radiusparameter, um die Größe der Nachbarschaft zu steuern und eine Eckenerkennung in verschiedenen Maßstäben zu erreichen.

Merkmale der Hough-Transformation zur Geradenerkennung:

  1. Robustheit: Die Hough-Transformation weist eine gewisse Robustheit gegenüber Bildrauschen und lokalen Störungen auf. Da die Hough-Transformation gerade Linien durch Akkumulation im Parameterraum erkennt, kann sie isolierte Punkte und störende Liniensegmente im Bild ignorieren.
  2. Zur Erkennung mehrerer gerader Linien: Die Hough-Transformation kann mehrere im Bild vorhandene gerade Linien erkennen, nicht nur eine gerade Linie. Sein Akkumulationsprozess im Parameterraum kann verschiedene Kombinationen von geraden Parametern erkennen.
  3. Empfindlichkeit gegenüber lokalen Formänderungen: Die Hough-Transformation reagiert bei der Erkennung gerader Linien empfindlicher auf lokale Formänderungen. Selbst wenn die gerade Linie teilweise unterbrochen ist oder Diskontinuitäten aufweist, kann die Hough-Transformation daher das entsprechende gerade Liniensegment erkennen.

Es ist zu beachten, dass der SUSAN-Operator und die Hough-Transformation klassische Methoden im Bereich der Bildverarbeitung sind und jeweils ihre eigenen Eigenschaften und Anwendungsbereiche haben. In praktischen Anwendungen können je nach Szenario und Bedarf geeignete Algorithmen für die Eckenerkennung und die Geradenerkennung ausgewählt werden.

Ich denke du magst

Origin blog.csdn.net/weixin_52374973/article/details/130625933
Empfohlen
Rangfolge