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