/* This file was generated by scramble.py. */
#ifndef _PCODE_HEADER_GUARD_CANNY_
#define _PCODE_HEADER_GUARD_CANNY_
typedef struct Node Node;
#include "config.h"
#include "image.h"
#include "vector.h"
Image * convolution_brute(Image *image, V *kernel, int kw, int kh);
Image * gaussian_smooth(Image *image, double sigma, int size);
Image * horizontal_sobel(Image *image);
Image * vertical_sobel(Image *image);
void get_gradient(Image *image, Image **magnitude_out, Image **orientation_out, V hfactor, V vfactor);
Image * non_maximum_suppression(Image *gradient, Image *orientation);
Image * edge_directions(Image *orientation);
Image * canny(Image *raster, double gauss_sigma, int gauss_size, double hfactor, double vfactor, char const *what);
struct Node
{
    int x, y;
};
int follow_streak(Image *image, int x, int y, int *dirs, int *mark, int tag, int kill, int *ax, int *ay, int *bx, int *by);
void remove_streaks(Image *image, char const *what, int minpixels, int min_w_pixels, int min_h_pixels, int max_horizontal, int max_vertical, int max_slash, int max_backslash, int max_bound_w, int max_bound_h, int debug);
#endif
/* This file was generated by scramble.py. */
