Marr-Hildreth éldetekor Matlabban
A Marr-Hildreth éldetektor nincs implementálva Matlabban, de sok függvényt fel tudunk hozzá használni.
A Marr-Hildreth éldetektor két különböző szigma paraméterű Laplacian of Gaussian (LoG) függvénnyel konvolválja a képet, majd megkeresi a közös nulla átmeneteket. A Marr-Hildreth éldetektor megvalósítása a következőképpen néz ki (a példában 7×7-es méretű szűrőt használtunk). Fontos megjegyeznünk, hogy ugyan az edge függvény is rendelkezik egy 'log' paraméterrel, az egy bináris képet ad vissza, nekünk pedig egy valós értékek kellenek a közös nulla-átmenetek meghatározásához.
function result = my_marr_hildreth(img, sigma1, sigma2)
LoG1 = fspecial('log',[7 7], sigma1);
LoG2 = fspecial('log',[7 7], sigma2);
img_LoG1 = imfilter(img, LoG1);
img_LoG2 = imfilter(img, LoG2);
img_zerocross1 = edge(img_LoG1,'zerocross');
img_zerocross2 = edge(img_LoG2,'zerocross');
result = img_zerocross1 & img_zerocross2;
end
Lássunk két eredményt:
![]() |
![]() |
![]() |
| Eredeti kép | Marr-Hildreth (szigmák: 0.4, 0.8) | Marr-Hildreth (szigmák: 0.2, 1.5) |


