Откриване на ръбове, линии и ъгли в изображения


Категория на документа: Други



При дадени производни от първи ред, силата на градиента после се изчислява по следният начин:

А неговата ориентация:

8. Откриване на ъгли чрез corner функцията.
Corner е най-надежната функция която може да използваме за да намерим съответствие между изображения. Следващата диаграма показва три пиксела - един вътре в обекта, един на ъгъла и един на ръба. Ако един пиксел е в обекта, неговите околности (непрекъснат квадрат) съответстват на околностите на неговите съседи (понктиран квадрат). Това е вярно за съседни пиксели във всички посоки. Ако пикселът е на ръба, неговите околности са различни от тези на съседите в една посока но са еднакви със тях в друга (перпендикулярна) посока.
Пиксел който се намира на ъгъл има различни околности във всички посоки.

Corner функцията идентифицира ъгли в изображения. Има два достъпни метода- метода на Харис за откриване на ъгли и метода на Ши и Томаси. И двата метода използват алгоритми който зависят от стойностите на сумиране на квадратни матрици. Те представляват разликита в обкражението на пиксели. Колкото по-големи са тези стойности толкова по голям е шанса този пиксел да е ъглов. Следващият пример показва как да откриваме ъгли със corner функцията.

Задаваме пътят към изображението на променлива.
I = imread('D:table.gif');
C = corner(I);

Показваме ъглите когато максималната стойност за показване на ъгли е 200(по подразбиране).

subplot(1,2,1);
imshow(I);
hold on
plot(C(:,1), C(:,2), '.', 'Color', 'g')
title('Maximum Corners = 200')
hold off

Показваме ъглите когато максималната стойност е 3.

corners_max_specified = corner(I,3);
subplot(1,2,2);
imshow(I);
hold on
plot(corners_max_specified(:,1), corners_max_specified(:,2), ...

'.', 'Color', 'g')
title('Maximum Corners = 3')
hold off

9. Откриване на линии чрез трансформация на Hough

Тук ще разгледаме как се използва Hough трансформиращата функция, за откриване на линий в изображение.

Първо прочитаме изображението след което завъртаме, изрязваме и показвам като greyscale.
I = imread('D:bismuth.gif');
rotI = imrotate(I,53,'crop');
fig1 = imshow(rotI);

Намираме ръбовете чрез Canny функцията

BW = edge(rotI,'canny');
figure, imshow(BW);

Показваме трансформация Hough:



Сподели линка с приятел:





Яндекс.Метрика
Откриване на ръбове, линии и ъгли в изображения 9 out of 10 based on 2 ratings. 2 user reviews.