00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024 
00025 #ifndef __FLGR_MORPHO_BASE_LOG_H
00026 #define __FLGR_MORPHO_BASE_LOG_H
00027 
00028 #include <flgrCoreDll.h>
00029 #include <flgrCoreErrors.h>
00030 #include <flgrCoreTypes.h>
00031 #include <flgrCoreData.h>
00032 #include <flgrArithShift.h>
00033 
00034   
00035 
00036   EXPORT_LIB FLGR_Ret flgr2d_erode_line_horizontal_log(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00037   EXPORT_LIB FLGR_Ret flgr2d_dilate_line_horizontal_log(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00038 
00039   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgBIT(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00040   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgUINT8(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00041   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgUINT16(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00042   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgUINT32(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00043   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgINT8(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00044   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgINT16(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00045   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgINT32(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00046   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgFLOAT32(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00047   EXPORT_LIB void flgr2d_erode_line_horizontal_log_fgFLOAT64(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00048 
00049   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgBIT(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00050   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgUINT8(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00051   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgUINT16(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00052   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgUINT32(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00053   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgINT8(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00054   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgINT16(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00055   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgINT32(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00056   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgFLOAT32(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00057   EXPORT_LIB void flgr2d_dilate_line_horizontal_log_fgFLOAT64(FLGR_Data2D *lineout, FLGR_Data2D *linein, int size);
00058 
00059 
00060 
00061   
00062 
00063   EXPORT_LIB FLGR_Ret flgr1d_erode_log(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00064   EXPORT_LIB FLGR_Ret flgr1d_dilate_log(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00065 
00066   EXPORT_LIB void flgr1d_erode_log_fgBIT(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00067   EXPORT_LIB void flgr1d_erode_log_fgUINT8(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00068   EXPORT_LIB void flgr1d_erode_log_fgUINT16(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00069   EXPORT_LIB void flgr1d_erode_log_fgUINT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00070   EXPORT_LIB void flgr1d_erode_log_fgINT8(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00071   EXPORT_LIB void flgr1d_erode_log_fgINT16(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00072   EXPORT_LIB void flgr1d_erode_log_fgINT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00073   EXPORT_LIB void flgr1d_erode_log_fgFLOAT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00074   EXPORT_LIB void flgr1d_erode_log_fgFLOAT64(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00075 
00076   EXPORT_LIB void flgr1d_dilate_log_fgBIT(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00077   EXPORT_LIB void flgr1d_dilate_log_fgUINT8(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00078   EXPORT_LIB void flgr1d_dilate_log_fgUINT16(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00079   EXPORT_LIB void flgr1d_dilate_log_fgUINT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00080   EXPORT_LIB void flgr1d_dilate_log_fgINT8(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00081   EXPORT_LIB void flgr1d_dilate_log_fgINT16(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00082   EXPORT_LIB void flgr1d_dilate_log_fgINT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00083   EXPORT_LIB void flgr1d_dilate_log_fgFLOAT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00084   EXPORT_LIB void flgr1d_dilate_log_fgFLOAT64(FLGR_Data1D *lineout, FLGR_Data1D *linein, int size);
00085 
00086   
00087 
00088 
00089   static __inline__ void flgr1d_erode_2_points_fgBIT(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00090                              FLGR_Data1D *tmpline, int size) {
00091     flgr1d_arith_inf_shift_right_fgBIT(tmpline, linein, size);
00092     flgr1d_arith_inf_shift_left_fgBIT(lineout, tmpline, size);
00093   }
00094   static __inline__ void flgr1d_erode_2_points_fgUINT8(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00095                                FLGR_Data1D *tmpline, int size) {
00096     flgr1d_arith_inf_shift_right_fgUINT8(tmpline, linein, size);
00097     flgr1d_arith_inf_shift_left_fgUINT8(lineout, tmpline, size);
00098   }
00099   static __inline__ void flgr1d_erode_2_points_fgUINT16(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00100                             FLGR_Data1D *tmpline, int size) {
00101     flgr1d_arith_inf_shift_right_fgUINT16(tmpline, linein, size);
00102     flgr1d_arith_inf_shift_left_fgUINT16(lineout, tmpline, size);
00103   }
00104   static __inline__ void flgr1d_erode_2_points_fgUINT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00105                             FLGR_Data1D *tmpline, int size) {
00106     flgr1d_arith_inf_shift_right_fgUINT32(tmpline, linein, size);
00107     flgr1d_arith_inf_shift_left_fgUINT32(lineout, tmpline, size);
00108   }
00109   static __inline__ void flgr1d_erode_2_points_fgINT8(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00110                               FLGR_Data1D *tmpline, int size) {
00111     flgr1d_arith_inf_shift_right_fgINT8(tmpline, linein, size);
00112     flgr1d_arith_inf_shift_left_fgINT8(lineout, tmpline, size);
00113   }
00114   static __inline__ void flgr1d_erode_2_points_fgINT16(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00115                                FLGR_Data1D *tmpline, int size) {
00116     flgr1d_arith_inf_shift_right_fgINT16(tmpline, linein, size);
00117     flgr1d_arith_inf_shift_left_fgINT16(lineout, tmpline, size);
00118   }
00119   static __inline__ void flgr1d_erode_2_points_fgINT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00120                                FLGR_Data1D *tmpline, int size) {
00121     flgr1d_arith_inf_shift_right_fgINT32(tmpline, linein, size);
00122     flgr1d_arith_inf_shift_left_fgINT32(lineout, tmpline, size);
00123   }
00124   static __inline__ void flgr1d_erode_2_points_fgFLOAT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00125                              FLGR_Data1D *tmpline, int size) {
00126     flgr1d_arith_inf_shift_right_fgFLOAT32(tmpline, linein, size);
00127     flgr1d_arith_inf_shift_left_fgFLOAT32(lineout, tmpline, size);
00128   }
00129   static __inline__ void flgr1d_erode_2_points_fgFLOAT64(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00130                              FLGR_Data1D *tmpline, int size) {
00131     flgr1d_arith_inf_shift_right_fgFLOAT64(tmpline, linein, size);
00132     flgr1d_arith_inf_shift_left_fgFLOAT64(lineout, tmpline, size);
00133   }
00134 
00135 
00136 
00137   static __inline__ void flgr1d_dilate_2_points_fgBIT(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00138                               FLGR_Data1D *tmpline, int size) {
00139     flgr1d_arith_sup_shift_right_fgBIT(tmpline, linein, size);
00140     flgr1d_arith_sup_shift_left_fgBIT(lineout, tmpline, size);
00141   }
00142   static __inline__ void flgr1d_dilate_2_points_fgUINT8(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00143                             FLGR_Data1D *tmpline, int size) {
00144     flgr1d_arith_sup_shift_right_fgUINT8(tmpline, linein, size);
00145     flgr1d_arith_sup_shift_left_fgUINT8(lineout, tmpline, size);
00146   }
00147   static __inline__ void flgr1d_dilate_2_points_fgUINT16(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00148                              FLGR_Data1D *tmpline, int size) {
00149     flgr1d_arith_sup_shift_right_fgUINT16(tmpline, linein, size);
00150     flgr1d_arith_sup_shift_left_fgUINT16(lineout, tmpline, size);
00151   }
00152   static __inline__ void flgr1d_dilate_2_points_fgUINT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00153                              FLGR_Data1D *tmpline, int size) {
00154     flgr1d_arith_sup_shift_right_fgUINT32(tmpline, linein, size);
00155     flgr1d_arith_sup_shift_left_fgUINT32(lineout, tmpline, size);
00156   }
00157   static __inline__ void flgr1d_dilate_2_points_fgINT8(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00158                                FLGR_Data1D *tmpline, int size) {
00159     flgr1d_arith_sup_shift_right_fgINT8(tmpline, linein, size);
00160     flgr1d_arith_sup_shift_left_fgINT8(lineout, tmpline, size);
00161   }
00162   static __inline__ void flgr1d_dilate_2_points_fgINT16(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00163                             FLGR_Data1D *tmpline, int size) {
00164     flgr1d_arith_sup_shift_right_fgINT16(tmpline, linein, size);
00165     flgr1d_arith_sup_shift_left_fgINT16(lineout, tmpline, size);
00166   }
00167   static __inline__ void flgr1d_dilate_2_points_fgINT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00168                             FLGR_Data1D *tmpline, int size) {
00169     flgr1d_arith_sup_shift_right_fgINT32(tmpline, linein, size);
00170     flgr1d_arith_sup_shift_left_fgINT32(lineout, tmpline, size);
00171   }
00172   static __inline__ void flgr1d_dilate_2_points_fgFLOAT32(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00173                               FLGR_Data1D *tmpline, int size) {
00174     flgr1d_arith_sup_shift_right_fgFLOAT32(tmpline, linein, size);
00175     flgr1d_arith_sup_shift_left_fgFLOAT32(lineout, tmpline, size);
00176   }
00177   static __inline__ void flgr1d_dilate_2_points_fgFLOAT64(FLGR_Data1D *lineout, FLGR_Data1D *linein, 
00178                               FLGR_Data1D *tmpline, int size) {
00179     flgr1d_arith_sup_shift_right_fgFLOAT64(tmpline, linein, size);
00180     flgr1d_arith_sup_shift_left_fgFLOAT64(lineout, tmpline, size);
00181   }
00182 
00183 
00184 
00185 
00186 
00187 #endif
00188 
00189 #ifdef __cplusplus
00190 }
00191 #endif
00192 
00193 
00194