svl_vcanny--multi-band implementation of Canny's edge detector




svl_vcanny {options} {input file} {output file}


The options for svl_vcanny are the same as for Vista's vcanny operator. See the man page for vcanny for details.

In addition, one new option has been added:

-weights <number1> <number2> <number3>

For 3-band images, three weights can be specified. Each weight will multiply its component of the gradient. The default weights are 1, 1, and 1. No normalization is performed on these numbers. Weights of zero can be used to perform gradient computation on any subset of bands.


The only difference between this implementation and the original implementation is in the computation of the gradient. In svl_canny, the gradient is computed first by taking the Nx2 Jacobian matrix at each pixel with respect to each band in the x- and y-directions. The Jacobian is then premultiplied by its transpose to get a 2x2 matrix. The largest eigenvalue is then the magnitude of the gradient, and the associated eigenvector points in the direction of the gradient.

There is no limit on the number of bands which can be passed in. For single-band images, the output will be identical to vcanny.

See Also