원시적 탐지

원시적 탐지

개념: 원시 검출은 컴퓨터 비전 및 패턴 인식 분야에서 이미지의 기본 모양이나 특정 로컬 패턴을 감지하고 식별하는 프로세스를 의미합니다. 프리미티브는 선분, 원, 직사각형 등과 같은 단순한 기하학적 모양이거나 모서리, 텍스처 등과 같은 보다 복잡한 로컬 이미지 구조일 수 있습니다.

1. 가장자리 감지
가장자리는 이미지의 픽셀 회색 값이 급격히 변하는 불연속적인 결과입니다. 가장자리는 해당 픽셀 인근에 있는 이미지 함수의 그라데이션 속성과 관련된 개별 픽셀에 할당된 속성입니다.

가장자리 크기: 그라데이션의 크기입니다.
가장자리 방향: 그라데이션 방향이 -90도 회전되었습니다.
가장자리 감지 원리
(가장자리 감지는 일반적인 기본 감지의 기초이자 경계 기반 이미지 분할의 첫 번째 단계입니다.)
가장자리 감지 알고리즘: Sobel, Laplacian 및 Canney 연산자.

2. 코너(Conner) 검출
개념: 코너 검출은 컴퓨터 비전 분야의 핵심 작업으로, 이미지에서 코너 점의 위치를 ​​검출하는 것을 목표로 합니다. 모퉁이 점은 이미지의 특별한 픽셀 위치이며 주변 영역은 다양한 방향으로 큰 그라데이션 변화를 갖습니다. 모서리 점은 일반적으로 객체 가장자리의 교차점 또는 전환점을 나타내며 다양한 보기 각도 및 배율에서 안정성을 유지하는 속성을 갖습니다.

모서리 감지의 주요 목표는 이미지에서 다음과 같은 특성을 갖는 픽셀 위치를 찾는 것입니다 .
1. 회색 그라데이션 변경: 모서리에 있는 픽셀 주변 영역에는 서로 다른 방향으로 뚜렷한 회색 그라데이션 변경이 있습니다. 즉, 서로 다른 방향에서 회색조 변경을 겪는 가장자리는 이 지점에서 수렴됩니다.
2. 격리: 모서리 점은 일반적으로 이미지에서 상대적으로 격리된 특징점으로, 주변 영역의 픽셀과 뚜렷한 회색조 차이가 있습니다.

일반적인 모서리 감지 알고리즘 에는 다음이 포함됩니다.
1. 해리스 모서리 감지 알고리즘: 픽셀 주변 이웃의 회색 그라데이션 및 공분산 행렬을 계산하여 모서리 점의 응답 값을 평가합니다. 응답값이 높은 픽셀은 코너 포인트로 간주됩니다.
2. Shi-Tomasi 코너 감지 알고리즘: 향상된 버전의 Harris 알고리즘을 기반으로 최소 고유값을 코너 응답성 측정값으로 사용하여 코너 점을 더 잘 선택할 수 있습니다.
3.FAST 코너 감지 알고리즘: 픽셀 주변의 원형 이웃에 대한 효율적인 픽셀 비교를 통해 코너 포인트를 결정하는 빠른 코너 감지 알고리즘입니다.
4. SIFT(Scale Invariant Feature Transform) 알고리즘: 스케일 공간을 기반으로 한 특징 탐지 및 설명 알고리즘으로, 스케일 및 회전 변화에 따른 코너 포인트를 탐지할 수 있습니다.
코너 감지

3. Hough Transform
개념: Hough Transform은 이미지 처리 및 컴퓨터 비전에 일반적으로 사용되는 기술로, 이미지에서 기하학적 모양, 특히 직선과 원을 감지하는 데 사용됩니다.

일반적인 Hough 변환 감지 애플리케이션:

1. 직선 감지: Hough 변환을 사용하여 이미지에서 직선을 감지할 수 있습니다. 이미지에서 가능한 모든 직선을 찾아 해당 직선의 매개변수 표현(보통 극형)을 제공합니다. 이는 이미지의 가장자리 감지 및 선 분할에 유용합니다.

2. 원 감지: Hough 변환을 사용하여 이미지에서 원을 감지할 수도 있습니다. 선 감지와 유사하게 이미지에서 가능한 모든 원을 찾아 파라메트릭 표현을 제공할 수 있습니다. 이는 컴퓨터 비전의 대상 인식 및 추적과 같은 원형 개체의 감지 및 추적에 유용합니다.

3. 곡선 감지: 직선과 원 외에도 Hough 변환을 사용하여 다른 모양의 곡선을 감지할 수도 있습니다. 예를 들어, 감지하려는 곡선의 수학 방정식 형태를 알고 있는 경우 Hough 변환을 사용하여 해당 방정식에 맞는 이미지의 곡선을 찾을 수 있습니다.

선형 감지

! ! !
다음 예에서는 모서리 점 감지에 SUSAN 연산자를 사용하고 직선 감지에 Hough Transform을 사용합니다.

전시하다matlab代码

1. SUSAN 운전자 코너 감지

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,'*')

실행 결과 표시:

회색조 이미지: 회색조 이미지
가장자리 감지:
가장자리 감지
모서리 감지:
코너 감지

2. Hough 변환 직선 검출

전시하다matlab代码

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  

실행 결과 표시:

원본 이미지와 회색조 이미지
까다로운 가장자리 감지
허프 변환 감지

요약하다:

SUSAN(Smallest Univalue Segment Assimilating Nucleus) 연산자는 영상 처리에 흔히 사용되는 모서리 검출 알고리즘인 반면, Hough 변환은 직선 검출에 사용되는 기술입니다. 아래에서 각각의 특징을 소개하겠습니다.

코너 감지를 위한 SUSAN 연산자의 특징:

  1. 이미지의 기울기 정보에 의존하지 않음: SUSAN 연산자는 픽셀 주변의 회색 값 통계 정보를 기반으로 하며 이미지의 기울기를 계산할 필요가 없습니다. 이로 인해 소음에 더욱 견고해졌습니다.
  2. 이는 조명 변화에 대한 확실한 견고성을 가지고 있습니다. SUSAN 연산자는 픽셀 주변 픽셀과 중앙 픽셀 사이의 회색조 차이를 비교하여 꼭지점을 결정합니다. 따라서 이미지에 특정 조명 변화가 있는 경우에도 효과적인 코너 감지가 수행될 수 있습니다.
  3. 스케일 불변성: SUSAN 연산자는 다양한 스케일의 이미지에서 꼭지점을 감지할 수 있습니다. 조정 가능한 반경 매개변수를 사용하여 이웃의 크기를 제어하여 다양한 스케일에서 코너 감지를 달성합니다.

직선 검출을 위한 허프 변환의 특징:

  1. 견고성: Hough 변환은 이미지 노이즈 및 로컬 간섭에 대해 어느 정도 견고성을 갖습니다. 허프 변환은 매개변수 공간에 누적되어 직선을 감지하므로 이미지에서 고립된 점과 간섭하는 선분을 무시할 수 있습니다.
  2. 여러 직선 감지의 경우: Hough 변환은 하나의 직선이 아닌 이미지에 존재하는 여러 직선을 감지할 수 있습니다. 매개변수 공간에서의 축적 프로세스는 다양한 직선 매개변수 조합을 감지할 수 있습니다.
  3. 로컬 모양 변경에 대한 민감도: Hough 변환은 직선을 감지할 때 로컬 모양 변경에 더 민감합니다. 따라서 직선이 어느 정도 중단되거나 불연속성이 있는 경우에도 Hough 변환을 사용하면 해당 직선 세그먼트를 검출할 수 있습니다.

SUSAN 연산자와 Hough 변환은 모두 이미지 처리 분야의 고전적인 방법이며 각각 고유한 특성과 적용 범위를 가지고 있습니다. 실제 응용 분야에서는 특정 시나리오 및 요구 사항에 따라 모서리 감지 및 직선 감지에 적합한 알고리즘을 선택할 수 있습니다.

추천

출처blog.csdn.net/weixin_52374973/article/details/130625933