pub fn dilate(image: &GrayImage, norm: Norm, k: u8) -> GrayImage {
    let mut out = image.clone();
    dilate_mut(&mut out, norm, k);
    out
}
Sets all pixels within distance `k` of a foreground pixel to white.

A pixel is treated as belonging to the foreground if it has non-zero intensity.

# Examples
```
# extern crate image;
# #[macro_use]
# extern crate imageproc;
# fn main() {
use image::GrayImage;
use imageproc::morphology::dilate;
use imageproc::distance_transform::Norm;

let image = gray_image!(
0,   0,   0,   0,   0;
0,   0,   0,   0,   0;
0,   0, 255,   0,   0;
0,   0,   0,   0,   0;
0,   0,   0,   0,   0
);

// L1 norm
let l1_dilated = gray_image!(
0,   0,   0,   0,   0;
0,   0, 255,   0,   0;
0, 255, 255, 255,   0;
0,   0, 255,   0,   0;
0,   0,   0,   0,   0
);

assert_pixels_eq!(dilate(&image, Norm::L1, 1), l1_dilated);

// L2 norm
//
// When computing distances using the L2 norm we take the ceiling of the true values.
// This means that using the L2 norm gives the same results as the L1 norm for `k <= 2`.
let l2_dilated = gray_image!(
0,   0,   0,   0,   0;
0,   0, 255,   0,   0;
0, 255, 255, 255,   0;
0,   0, 255,   0,   0;
0,   0,   0,   0,   0
);

assert_pixels_eq!(dilate(&image, Norm::L2, 1), l2_dilated);

// LInf norm
let linf_dilated = gray_image!(
0,   0,   0,   0,   0;
0, 255, 255, 255,   0;
0, 255, 255, 255,   0;
0, 255, 255, 255,   0;
0,   0,   0,   0,   0
);

assert_pixels_eq!(dilate(&image, Norm::LInf, 1), linf_dilated);
# }
```
src/morphology.rs