Ανίχνευση Ακμών

Standard

Η ανίχνευση ακμών αποτελεί μια από τις εφαρμογές για την ανάλυση εικόνων με τη βοήθεια των αλγεβρικών τελεστών (άθροισμα, διαφορά, γινόμενο, πηλίκο). Πιο συγκεκριμένα, σε ότι αφορά την ανίχνευση ακμών, η αφαίρεση εικόνων μπορεί να χρησιμοποιηθεί για τον υπολογισμό μιας σημαντικής παραγώγου της εικόνας, της βαθμίδας. Σύμφωνα με την ανίχνευση ακμών, κάθε ένα από τα εικονοστοιχεία της εικόνας εξετάζεται με σκοπό να προσδιοριστεί κατά πόσον ανήκει στο σύνορο ενός αντικειμένου. Τέτοιου είδους εικονοστοιχεία προσδιορίζονται ως στοιχεία ακμών. Η ανίχνευση ακμών πραγματοποιείται με εξέταση της περιοχής κάθε εικονοστοιχείου και ποσοτικοποίησης της κλίσης και της κατεύθυνσης της αλλαγής επιπέδων γκρίζου. Για το σκοπό αυτό χρησιμοποιούνται διάφοροι συνελικτικοί τελεστές, όπως για παράδειγμα ανίχνευση ακμών κατά Roberts, Sobel, Prewitt, Kirsch. [παραπομπή]

Ο κώδικας που χρησιμοποιείται για την υλοποίηση των διάφορων αλγορίθμων ανίχνευσης ακμών έχει ως εξής:

Αρχείο Edgedetection.m

 

I = imread(‘cameraman.tif’)
BW1 = edge(I,’prewitt’);
BW2 = edge(I,’roberts’);
BW3 = edge(I,’sobel’);
figure, imshow(BW1)
figure, imshow(BW2)
figure, imshow(BW3)
4A16CC7BD5DDCF61_328_0
Στις οθόνες που ακολουθούν, επιστρέφεται το αποτέλεσμα της εικόνας που προκύπτει από την εφαρμογή του κάθε αλγορίθμου πάνω στο αρχικό αρχείο.

Ανίχνευση ακμών Prewitt

4A16CC7BD5DDCF61_328_1

Ανίχνευση ακμών Roberts

4A16CC7BD5DDCF61_328_2

Ανίχ νευση ακμών Sobel

4A16CC7BD5DDCF61_328_3

Σε ότι αφορά την ανίχνευση ακμών σύμφωνα με τον αλγόριθμο «kirch», ο κώδικας και τα αρχεία που χρησιμοποιούνται απεικονίζονται ως εξής:

Kirch.m

 

% Read the sample image in
im = imread(‘cameraman.tif’);

% Find edges using the Canny operator with hysteresis thresholds of 0.1
% and 0.2 with smoothing parameter sigma set to 1.

[edgeim, thresh] = edge_ed(im,’kirsch’,0);
figure(1), imshow(edgeim);

Edge_Ed.m

function [imout, thresh] = edge_ed( im, method, thresh, param2 )
[n,m]= size(im);
xx= 2:m-1;
yy= 2:n-1;

if strcmp(method,’kirsch’)

filt1= [1 2 1;0 0 0;-1 -2 -1]; fim1= conv2(im,filt1,’same’);
filt2= [2 1 0;1 0 -1;0 -1 -2]; fim2= conv2(im,filt2,’same’);
filt3= [1 0 -1;2 0 -2;1 0 -1]; fim3= conv2(im,filt3,’same’);
filt4= [0 1 2;-1 0 1;-2 -1 0]; fim4= conv2(im,filt4,’same’);

imo= reshape(max([abs(fim1(:)) abs(fim2(:)) abs(fim3(:)) abs(fim4(:))]’),n,m);
if nargin<3
thresh= 2* mean(mean( imo(yy,xx) )) ;
end

imout= imo >= thresh ;
xpeak= imo(yy,xx-1) <= imo(yy,xx) & imo(yy,xx) > imo(yy,xx+1) ;
ypeak= imo(yy-1,xx) <= imo(yy,xx) & imo(yy,xx) > imo(yy+1,xx) ;
imout(yy,xx)= imout(yy,xx) & ( xpeak | ypeak );

end

Το αποτέλεσμα που επιστρέφεται από την εκτέλεση του αλγόριθμου, σε ότι αφορά την ανίχνευση ακμών πάνω στην αρχική εικόνα έχει ως εξής:

4A16CC7BD5DDCF61_328_4

Comments
yeezy boost 350 ua yeezytrainer yeezy boost 350 ua yeezytrainer yeezytrainer yeezy boost 350 ua yeezy boost 350 ua yeezy shoes yeezy shoes yeezy boost online

yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes yeezy 350 boost for sale yeezy boost online yeezy shoes