Efros-Leung
Exemplar-basedtexturesynthesis(Efros-Leung)
|
00001 #pragma once 00002 00003 #include <stdlib.h> 00004 #include "auxiliary.h" 00005 #include "mt.h" 00006 00007 int compare_pixel(const void * a, const void * b); 00008 int compare_cand_dist(const void * a, const void * b); 00009 00010 unsigned char *load_patch_list( Cimage w, int t ); 00011 unsigned char *load_patch_list_gray( Gimage w, int t ); 00012 00013 float * gaussian_weights( int patchSize, int t ); 00014 float * uniform_weights( int patchSize ); 00015 00016 long int generate_current_list ( int cote, int coin, Pixel current, unsigned char *mask, int t, int larg, int haut ); 00017 int known_neighbours( Cimage v, unsigned char* mask, Pixel current, int i, int t, int larg, int haut, unsigned short *mask_neighb, unsigned char *curr_patch ); 00018 int known_neighbours_gray( Gimage v, unsigned char* mask, Pixel current, int i, int t, int ncols_v, int nrows_v, unsigned short *mask_neighb, unsigned char *curr_patch ); 00019 00020 int find_candidates( unsigned char *patch_list,unsigned char *patch_list_mask, unsigned char *curr_patch, int totalPatchs, int t, unsigned short *mask_neighb, int voisins_updated, float tolerance, Cand_dist cand_list, float *weights ); 00021 int find_candidates_gray( unsigned char *patch_list,unsigned char *patch_list_mask, unsigned char *curr_patch, int totalPatchs, int t, unsigned short *mask_neighb, int voisins_updated, float tolerance, Cand_dist cand_list, float *weights ); 00022 00023 int compute_distances( int totalPatchs, int t, int voisins_updated, unsigned short *mask_neighb, unsigned char *patch_list,unsigned char *patch_list_mask, unsigned char *curr_patch, float tolerance, Cand_dist cand_list, float *radius_out, float *weights); 00024 int compute_distances_gray( int totalPatchs, int t, int neighbs_updated, unsigned short *mask_neighb, unsigned char *patch_list,unsigned char *patch_list_mask, unsigned char *curr_patch, float tolerance, Cand_dist cand_list, float *radius_out, float *weights); 00025 00026 long int random_choose ( Cand_dist cand_list, long int size_list ); 00027 void retrieve_coords( int p, int ncols, int* x, int* y); 00028