Editing User:Level zero/GSOC13/api

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
 
=API CALLS=
 
=API CALLS=
==Cropping(Group1)==
+
==Group1==
'''for bwrect, pixrect'''
+
*for bwrect, pixrect
'''Comments'''
+
    void
*Removes a rectangular portion of a potentially huge image.
+
    icv_rect(icv_image_file_t *img,
*''orig'', is the point that corresponds to  Bottom left corner to extract the image from
+
            icv_image_file_t *img_out,  
*''area'' corresponds to the total number of pixels in the new map.
+
            icv_point_t *area,
*''img_out'' is the output image.
+
            icv_point_t *orig); 
  
     int
+
*for bwcrop
     icv_rect(const icv_image_t *img,
+
     void
             const icv_point_t *area,
+
     icv_crop(icv_image_file_t *img,
             const icv_point_t *orig
+
             icv_image_file_t *img_out,
             icv_image_t *img_out)
+
            icv_size_t *outsize,
 +
            icv_point_t *p1,
 +
            icv_point_t *p2,
 +
             icv_point_t *p3,
 +
             icv_point_t *p4);
 +
==Group2==
 +
*for bwdiff, pixdiff
 +
    void
 +
    icv_oper2(icv_image_file_t* img1,
 +
              icv_image_file_t* img2,
 +
              icv_image_file_t *img_out,
 +
              icv_operation *opr)  
  
 +
*for bwmod
 +
    void
 +
    icv_oper1(icv_image_file* img,
 +
              icv_image_file_t *img_out,
 +
              icv_operation_t *oper[], 
 +
              int numop);
  
'''for bwcrop'''
+
*for Pixsaturate
 +
    void
 +
    icv_saturate(icv_image_file_t *img,
 +
                icv_image_file_t *img_out,   
 +
                double saturation);
  
'''Comments'''
+
==Group3==
*Crops file with arbitrary points
+
*for bwfilter, pixfilter, pix3filter, pixfade
*''p1'', ''p2'', ''p3'', ''p4'' are left lower, right lower, left upper and right upper points respectively.
+
    void
*''img_out'' is the output image.
+
    icv_filter(icv_image_file_t *img,
 +
              icv_image_file_t *img_out
 +
              int kernel);
  
     int
+
==Group4==
     icv_crop(const icv_image_t *img,
+
*for bwhist, pixhist
            const icv_point_t *p1,
+
     void
            const icv_point_t *p2,
+
     icv_hist(icv_image_file_t *img,  
            const icv_point_t *p3,
+
            long *bin1,  
            const icv_point_t *p4,
+
            long *bin2,  
            const icv_size_t *outsize,
+
            long *bin3);
            icv_image_t *img_out);
 
 
==Operations (Group2)==
 
  
'''for bwdiff, pixdiff'''
+
*for bwhisteq
 +
    void icv_histeq(icv_image_file_t *img,
 +
                    icv_imgage_file_t *out);
  
'''Comments'''
+
==Group5==
*Performs arithmetic operations between the pixels of two images.
+
*for bwscale, pixscale
*''img_1'' and ''img_2'' are two input images.
+
    void icv_histeq(icv_image_file_t *img,
*''opr'' corresponds to the operation information.
+
                    icv_image_file_t *img_out,
*''img_out'' is the output image.
+
                    icv_size_t *size,
 +
                    int method);
 +
*for bwshrink, pixshrink
 +
    void icv_shrink(icv_image_file_t *img,
 +
                    icv_image_file_t* img_out,
 +
                    icv_size_t *size,
 +
                    int factor,
 +
                    int method);
  
 
+
==Group6==
    int
+
*for imgdims, pixcount
    icv_airth2(const icv_image_t* img1,
 
              const icv_image_t* img2,
 
              const icv_operation_t *opr,
 
              icv_image_t *img_out)
 
 
 
'''for bwmod'''
 
 
 
'''Comments'''
 
*Performs arithmetic operations with a value of the pixels of the input image, the resultant value is replaced in the same input image.
 
*''oper'' is the array corresponding to the operations.
 
*''numop'' is the number of operations.
 
*''img_out'' is the output image.
 
 
 
    int
 
    icv_airth1(icv_image_t* img,
 
              const icv_operation_t *oper[], 
 
              const int numop);
 
 
 
'''for Pixsaturate'''
 
 
 
'''Comments'''
 
*''saturation'' is the saturation value
 
*''img_out'' is the output image.
 
 
 
    int
 
    icv_saturate(const icv_image_t *img,
 
                const double saturation,
 
                icv_image_t *img_out);
 
 
 
==Filters (Group3)==
 
'''for bwfilter, pixfilter, pix3filter, pixfade
 
 
 
'''Comments'''
 
*Performs filtering of image using convolution with the kernel.
 
*''kernel'' corresponds to kernel used for image filter
 
*''img_out'' is the output image.
 
 
 
    int
 
    icv_filter(const icv_image_t *img,
 
              const icv_kernel_type_t kernel;
 
              icv_image_ *img_out);
 
 
 
==Histogram (Group4)==
 
'''for bwhist, pixhist'''
 
 
 
'''Comments'''
 
*Finds histogram of the image
 
*''bin'' is the number of bins for calculating histogram
 
*''bin_out1'', ''bin_out2'' and ''bin_out3'' are the pointers for output histograms
 
*For three channel image this is called with all the three output pointers, for bw image this is called with pointers only for first and others are left as NULL
 
 
 
    int
 
    icv_hist(const icv_image_t *img,
 
            const int bin,
 
            long *bin_out1,
 
            long *bin_out2,
 
            long *bin_out3);
 
 
 
'''for bwhisteq'''
 
 
 
'''Comments'''
 
*Calculates histogram equalization of the image
 
 
 
    int
 
    icv_histeq(const icv_image_t *img,
 
                    icv_imgage_file_t *img_out);
 
 
 
==Scale (Group5)==
 
'''for bwscale, pixscale'''
 
 
 
'''Comments'''
 
* ''outsize'' is the required output size
 
* ''method'' is the prescribed method   
 
 
 
    int   
 
    icv_scale(const icv_image_t *img,
 
                  const icv_size_t *outsize,
 
                  const icv_scale_method_t method,
 
                  icv_image_t *img_out);
 
 
 
'''for bwshrink, pixshrink'''
 
 
 
'''Comments'''
 
* ''factor'' is shrinking factor.
 
* ''method'' is the prescribed method.
 
 
 
    int
 
    icv_shrink(const icv_image_t *img,
 
                    icv_image_t *img_out,
 
                    const int factor,
 
                    const icv_shrink_mehtod_t method);
 
 
 
==Stats (Group6)==
 
'''for imgdims, pixcount'''
 
 
Not useful     
 
Not useful     
 
+
*for pixstat, bwstat
'''for pixstat, bwstat'''
+
     void icv_stat(icv_image_file_t *img,
 
 
'''Comments'''
 
* finds the image statistics
 
 
 
    int
 
     icv_stat(const icv_image_t *img,
 
 
                   icv_stat_t *stat1,  
 
                   icv_stat_t *stat1,  
 
                   icv_stat_t *stat2,   
 
                   icv_stat_t *stat2,   
 
                   icv_stat_t *stat3);
 
                   icv_stat_t *stat3);
  
'''for pixcolors'''
+
*for pixcolors
 
+
     void icv_colors(icv_image_file_t *img)  
    int
 
     icv_colors(icv_image_t *img)  
 
 
     /* Prints all the colors */     
 
     /* Prints all the colors */     
 
      
 
      
  
==Threshold (Group7)==
+
==Group7==
'''for bwthresh'''
+
*for bwthresh  
 
+
     void icv_threshold(icv_image_file_t *img,
'''Comments'''
+
                       icv_image_file_t *img_out,
* ''val'' is a pointer to an array of threshold values
+
                       unsigned char *val,
* ''num_thresh'' is the number of the threshold values
+
  int num_thresh);
* ''img_out'' is the output image
+
*for pixclump
 
+
     void icv_clump()
    int
 
     icv_threshold(const icv_image_t *img,
 
                       icv_image_t *img_out,
 
                       const unsigned char *val,
 
                      const int num_thresh);
 
 
 
'''for pixclump'''
 
 
 
    int
 
     icv_clump()
 
 
/* Need Suggestions */
 
/* Need Suggestions */
 
      
 
      
== Interpolate (Group8) ==
+
==Group8==
'''for pixinterep2x'''
+
*for pixinterep2x
 
+
     void icv_interep2x(icv_image_file_t *img,
'''Comments'''
+
                       icv_image_file_t *img_out);     
*Interpolates the image two twice its resolution
+
*for pixhalve
 
+
     void icv_halve(icv_image_file_t *img,
    int
+
                   icv_image_file_t *img_out
     icv_interep2x(const icv_image_t *img,
+
                  int autosize );
                       icv_image_t *img_out);     
 
 
 
'''for pixhalve'''
 
 
 
'''Comments'''
 
*Decimates the image
 
 
 
    int
 
     icv_halve(const icv_image_t *img,
 
                   icv_image_t *img_out);
 
  
 
=Structure=
 
=Structure=
 
*ICV_IMAGE_FILE
 
*ICV_IMAGE_FILE
+
struct icv_image_file {
  struct icv_image_file {
+
uint_32 magic;
    uint_32 magic;
+
char* filename;
    char* filename;
+
int fd;
    int fd;
+
int format;
    int format;
+
int width, height, depth;
    int width, height, depth;
+
unsigned char *data;
    unsigned char *data;
+
unisgned long flags;
    unisgned long flags;
+
}
  };
 
  
 
*ICV_SIZE
 
*ICV_SIZE
+
struct icv_size {
  struct icv_size {
+
int height, width;
    int height, width;
+
}
  };
 
  
 
*ICV_POINT
 
*ICV_POINT
+
struct icv_point {
  struct icv_point {
+
int x,y;
    int x,y;
+
}
  };
 
  
 
*ICV_OPERATION
 
*ICV_OPERATION
+
struct icv_operation {
  struct icv_operation {
+
char oper;
    char oper;
+
double val;
    double val;
+
}
  };
 
 
 
*ICV_KERNEL
 
*ICV_KERNEL
+
struct icv_kernel {
  struct icv_kernel {
+
char *name;
    char *name;
+
char *uname; /* What is needed to recognize it */
    char *uname; /* What is needed to recognize it */
+
int kern[9];
    int *kern;
+
int kerndiv; /* Divisor for kernel */
    int kerndiv; /* Divisor for kernel */
+
int kernoffset; /* To be added to result */
    int kernoffset; /* To be added to result */
+
}
  };
 
  
 
*ICV_STAT
 
*ICV_STAT
   
+
struct icv_stat {
    struct icv_stat {
+
    long bin[256];
      int max, min, mode, median;
+
    int max, min, mode, median;
      double mean, var, skew;
+
    double mean, var, skew;
      long sum, partial_sum;
+
    long sum, partial_sum;
    };
+
}

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)