Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- // INSTITUTO POLITÉCNICO DO CÁVADO E DO AVE
- // 2011/2012
- // ENGENHARIA DE SISTEMAS INFORMÁTICOS
- // VISÃO POR COMPUTADOR
- //
- // [ DUARTE DUQUE - dduque@ipca.pt ]
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- #define VC_DEBUG
- #define MAX(a,b) (a > b ? a : b)
- #define MIN(a,b) (a < b ? a : b)
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- // ESTRUTURA DE UMA IMAGEM
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- typedef struct {
- unsigned char *data;
- int width, height;
- int channels; // Binário/Cinzentos=1; RGB=3
- int levels; // Binário=1; Cinzentos [1,255]; RGB [1,255]
- int bytesperline; // width * channels
- } IVC;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- // ESTRUTURA DE UM BLOB (OBJECTO)
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- typedef struct {
- int x, y, width, height; // Caixa Delimitadora (Bounding Box)
- int area; // Área
- int xc, yc; // Centro-de-massa
- int perimeter; // Perímetro
- int label; // Etiqueta
- } OVC;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- // PROTÓTIPOS DE FUNÇÕES
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- OVC* vc_binary_blob_labelling(IVC *src, IVC *dst, int *nlabels);
- int vc_binary_blob_info(IVC *src, OVC *blobs, int nblobs);
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- // PROTÓTIPOS DE FUNÇÕES
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- // FUNÇÕES: ALOCAR E LIBERTAR UMA IMAGEM
- IVC *vc_image_new(int width, int height, int channels, int levels);
- IVC *vc_image_free(IVC *image);
- // FUNÇÕES: LEITURA E ESCRITA DE IMAGENS (PBM, PGM E PPM)
- IVC *vc_read_image(char *filename);
- int vc_write_image(char *filename, IVC *image);
- int vc_rgb_to_hsv_red(IVC *srcdst);
- int vc_rgb_to_hsv_yellow(IVC *srcdst);
- int vc_rgb_to_hsv_blue(IVC *srcdst);
- int vc_rgb_to_hsv_madeira(IVC *srcdst);
- int vc_rgb_get_red_gray(IVC *srcdst);
- int vc_scale_gray_to_rgb(IVC *src, IVC *dst);
- int vc_gray_to_binary(IVC *srcdst, int threshold);
- int vc_rgb_to_binary_midpoint(IVC *src, IVC *dst, int kernel);
- int vc_binary_dilate(IVC *src, IVC *dst, int kernel);
- OVC *vc_binary_blob_labelling(IVC *src, IVC *dst, int *nlabels);
- int vc_binary_blob_info(IVC *src, OVC *blobs, int nblobs);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement