## Description

This tool performs a Canny edge-detection filtering operation on an input image (`input`). The Canny edge-detection filter is a multi-stage filter that combines a Gassian filtering (gaussian_filter) operation with various thresholding operations to generate a single-cell wide edges output raster (`output`). The `sigma` parameter, measured in grid cells determines the size of the Gaussian filter kernel. The `low` and `high` parameters determine the characteristics of the thresholding steps; both parameters range from 0.0 to 1.0.

By default, the output raster will be Boolean, with 1's designating edge-cells. It is possible, using the `add_back` parameter to add the edge cells back into the original image, providing an edge-enchanced output, similar in concept to the unsharp_masking operation.

## References

This implementation was inspired by the algorithm described here: https://towardsdatascience.com/canny-edge-detection-step-by-step-in-python-computer-vision-b49c3a2d8123

## See Also

gaussian_filter, sobel_filter, unsharp_masking, scharr_filter

## Function Signature

`def canny_edge_detection(self, input: Raster, sigma: float = 0.5, low_threshold: float = 0.05, high_threshold: float = 0.15, add_back_to_image: bool = False) -> Raster: ...`

## Project Links

WbW Homepage User Manual Support WbW