## Name

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

`~ruzon/bin/svl_vcanny`
## Syntax

`svl_vcanny {options} {input file} {output file}`
## Options

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.

## Description

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

vcanny