well, first off, you seem to have dropped a patch during the last set.
gift compiles, but dosent work.

i'm attatching that patch to this mail. please apply immediately.

second off, i'm adding another patch, that colapses kernel[11,12,21,22] into 
one variable, kernelsxy, and removes it from the global scope.

speed improvement: 1.72 VS 1.66. probably just because of less calls of 
malloc().

Thanks,

Julia Longtin <[EMAIL PROTECTED]>
--- ../../dev2/gift/FeatureExtraction/extract_features.c        2006-06-28 
00:08:54.000000000 +0000
+++ FeatureExtraction/extract_features.c        2006-06-28 21:50:05.000000000 
+0000
@@ -22,15 +22,35 @@
 #define numV 3
 #define numGrey 4
 
+#define OLDFIXED
+#ifdef OLDFIXED
+/* the number of scales to recognise features at */
+#define num_gabor_scales 3
+/* the number of color blocks we're going to break the image into 
(overlapping) */
+#define num_total_colour_blocks (256+64+16+4)
+#endif
+
+void init_feature_variables(uint32_t, uint32_t **, uint32_t ***, uint32_t ***);
+void extract_gabor_features(PPM *, uint32_t ***, uint32_t ***);
+void extract_mode_features(PPM *, uint32_t *, uint32_t, uint32_t **, byte *, 
uint32_t *);
+enum ppm_error write_mode_features(char *, uint32_t, uint32_t *, uint32_t ***, 
uint32_t ***, byte *);
+
 int main(int argc, char *argv[]) {
 
        char *in_fname, *out_fname;
        char *point_pos;
        FILE *ppm_file;
        PPM *im_rgb, *im_hsv, *im_quant;
-       int *colmap, colmap_size;
+       uint32_t *colmap, colmap_size;
        enum file_types ppm_type;
        enum ppm_error the_error;
+       uint32_t ** block_gabor_class[num_gabor_scales];
+       uint32_t ** gabor_histogram[num_gabor_scales];
+       /* the "mode" of each color block. */
+       byte block_mode[num_total_colour_blocks];
+       /* the colour count of each block. for quantizing the image */
+       uint32_t * col_counts[num_total_colour_blocks];
+       uint32_t * col_histogram;
  
        switch(argc) {
        case 2:
@@ -94,17 +114,20 @@
                exit(1);
        }
 
+       /* FIXME: move this back into init_feature_variables. */
+       col_histogram = (uint32_t *)malloc(colmap_size*sizeof(uint32_t));
+
        /* initialise the variables required for the feature extraction */
-       init_feature_variables(colmap_size);
+       init_feature_variables(colmap_size, col_counts, block_gabor_class, 
gabor_histogram);
 
        /* extract the features */
 
-       extract_mode_features(im_quant, colmap, colmap_size);
+       extract_mode_features(im_quant, colmap, colmap_size, col_counts, 
block_mode, col_histogram);
 
-       extract_gabor_features(im_hsv);
+       extract_gabor_features(im_hsv, block_gabor_class, gabor_histogram);
 
        /* write them to the file */
-       if ((the_error = write_mode_features(out_fname, colmap_size)) != 
PPM_OK) {
+       if ((the_error = write_mode_features(out_fname, colmap_size, 
col_histogram, block_gabor_class, gabor_histogram, block_mode)) != PPM_OK) {
          ppm_handle_error(the_error);
          exit(1);
        }

Attachment: patches_round_3.tar.gz
Description: GNU Zip compressed data

_______________________________________________
help-GIFT mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gift

Reply via email to