2.0

2.0 | 2 ratings Rate this file 27 Downloads (last 30 days) File Size: 2.35 KB File ID: #38366

Three dimensional implementation of the Canny edge detection

by boyexex

 

27 Sep 2012

Can be used to detected surfaces from a 3D volume.

| Watch this File

File Information
Description

Current implementation is not optimized.
Process a small portion of 3D volume at a time and combine them at the end to reduce memory consumption.

Required Products MATLAB
MATLAB release MATLAB 7.8 (R2009a)
Tags for This File  
Everyone's Tags
3d(2), canny edge, edge detection(2), image processing
Tags I've Applied
Add New Tags Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (3)
23 Apr 2013 JR King

Same error as CH for me.

21 Feb 2013 Chuck Hatt

Didn't work for me, but looks promising

edgevol = canny3D(double(vol),5,2,.3,.1);
??? Subscript indices must either be real positive integers or logicals.

Error in ==> interp3>linear at 374
F = (( arg4(ndx).*(1-t) + arg4(ndx+1).*t ).*(1-s) + ...

Error in ==> interp3 at 223
vi = linear(x,y,z,v,xi,yi,zi,ExtrapVal);

Error in ==> nonmax_sup at 21
imtemp = interp3(imfil_mag,xi,yi,zi);

Error in ==> canny3D at 28
im_sub = nonmax_sup(imfil_x,imfil_y,imfil_z,th_up, th_low);

30 Sep 2012 boyexex

parameters of this function is simple.

im_out = canny3D(im_in, size_of_gaussian_filter, SD_of_gaussian_filter, upper_threshold, lower_threshold)

im_out is a logical 3D array of surfaces; 1 for surface, 0 otherwise.

For the definition of upper_threshold and lower_threshold please check the original paper on Canny edge detection by John Canny.

Contact us