00001 // lasercalc.h 00002 #ifndef MAP_OPTIONS 00003 #ifndef MAP_FILE 00004 #define MAP_OPTIONS MAP_PRIVATE /* Sun */ 00005 #else 00006 #define MAP_OPTIONS MAP_FILE|MAP_PRIVATE /* Linux */ 00007 #endif 00008 #endif 00009 #ifndef MAX_IMAGE_WIDTH 00010 #define MAX_IMAGE_WIDTH 1288 00011 #define MAX_IMAGE_HEIGHT 1032 00012 #endif 00013 #ifndef MD 00014 //#define MD(x) fprintf(stderr,"%s:%d:",__FILE__,__LINE__);x 00015 #define MD(x) 00016 #endif 00017 #define MYPRECISION double 00018 00019 struct beam_params { 00020 // primary sums 00021 MYPRECISION SQ; // Sum of all pixels values 00022 MYPRECISION SxQ; // Sum of (pixels values multiplied by x) 00023 MYPRECISION SyQ; // Sum of (pixels values multiplied by y) 00024 MYPRECISION SxxQ; // Sum of (pixels values multiplied by x*x) 00025 MYPRECISION SyyQ; // Sum of (pixels values multiplied by y*x) 00026 MYPRECISION SxyQ; // Sum of (pixels values multiplied by x*y) 00027 //momentums 00028 MYPRECISION xc; // center x 00029 MYPRECISION yc; // center y 00030 MYPRECISION s2x; // (sigma_x)^2 00031 MYPRECISION s2y; // (sigma_y)^2 00032 MYPRECISION sxy; // (sigma_xy)^2 00033 //results 00034 MYPRECISION dx; // diamerter_x 00035 MYPRECISION dy; // diamerter_y 00036 MYPRECISION d; // diamerter 00037 MYPRECISION az; // ellipse azimuth 00038 MYPRECISION dxe; // ellipse width x 00039 MYPRECISION dye; // ellipse width y 00040 MYPRECISION ar; // aspect ratio 00041 }; 00042 00043 00044 // <0 - error, 0 - OK 00045 // calculates beam_param structure elements. Works only in 10-bit mode 00046 int calculateBeamParams(const char * dmaFileName, 00047 int width, 00048 int height, 00049 struct beam_params * beam 00050 );