00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <stdio.h>
00023 #include <stdlib.h>
00024 #include <string.h>
00025 #include <flgrCoreDispatch.h>
00026 #include <flgrCoreSlideWindow.h>
00027 #include "flgrMorphoKerOp.h"
00028 #include "flgrMorphoAmibes.h"
00029
00030
00031
00032 void flgr1d_erode_resizeable_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00033
00034 flgr1d_raster_slide_structuring_function_fgBIT(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgBIT);
00035 }
00036 void flgr1d_erode_resizeable_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00037
00038 flgr1d_raster_slide_structuring_function_fgUINT8(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgUINT8);
00039 }
00040 void flgr1d_erode_resizeable_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00041
00042 flgr1d_raster_slide_structuring_function_fgUINT16(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgUINT16);
00043 }
00044 void flgr1d_erode_resizeable_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00045
00046 flgr1d_raster_slide_structuring_function_fgUINT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgUINT32);
00047 }
00048 void flgr1d_erode_resizeable_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00049
00050 flgr1d_raster_slide_structuring_function_fgINT8(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgINT8);
00051 }
00052 void flgr1d_erode_resizeable_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00053
00054 flgr1d_raster_slide_structuring_function_fgINT16(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgINT16);
00055 }
00056 void flgr1d_erode_resizeable_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00057
00058 flgr1d_raster_slide_structuring_function_fgINT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgINT32);
00059 }
00060 void flgr1d_erode_resizeable_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00061
00062 flgr1d_raster_slide_structuring_function_fgFLOAT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgFLOAT32);
00063 }
00064 void flgr1d_erode_resizeable_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00065
00066 flgr1d_raster_slide_structuring_function_fgFLOAT64(datdest, datsrc, semap, shape,flgr1d_get_nhb_minimum_fgFLOAT64);
00067 }
00069
00082
00083 FLGR_Ret flgr1d_erode_resizeable(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00084 FLGR_Ret ret;
00085
00086
00087
00088 if((datdest==NULL) || (datsrc==NULL) || (semap==NULL)){
00089 POST_ERROR("Null objects!\n");
00090 return FLGR_RET_NULL_OBJECT;
00091 }
00092
00093 if((ret=flgr1d_is_data_same_attributes(datdest,datsrc,__FUNCTION__))!=FLGR_RET_OK) return ret;
00094 if((ret=flgr1d_is_data_same_length(semap,datdest))!=FLGR_RET_OK) return ret;
00095
00096 if(semap->type != FLGR_INT32) {
00097 POST_ERROR("Image SE Map must be represented in fgINT32 format!\n");
00098 return FLGR_RET_PARAM_UNKNOWN;
00099 }
00100
00101 FLGR_DISPATCH_PROCEDURE(datdest->type,flgr1d_erode_resizeable,datdest,datsrc,semap,shape);
00102
00103 }
00104
00105
00106
00107 void flgr1d_dilate_resizeable_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00108
00109 flgr1d_raster_slide_structuring_function_fgBIT(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgBIT);
00110 }
00111 void flgr1d_dilate_resizeable_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00112
00113 flgr1d_raster_slide_structuring_function_fgUINT8(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgUINT8);
00114 }
00115 void flgr1d_dilate_resizeable_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00116
00117 flgr1d_raster_slide_structuring_function_fgUINT16(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgUINT16);
00118 }
00119 void flgr1d_dilate_resizeable_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00120
00121 flgr1d_raster_slide_structuring_function_fgUINT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgUINT32);
00122 }
00123 void flgr1d_dilate_resizeable_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00124
00125 flgr1d_raster_slide_structuring_function_fgINT8(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgINT8);
00126 }
00127 void flgr1d_dilate_resizeable_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00128
00129 flgr1d_raster_slide_structuring_function_fgINT16(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgINT16);
00130 }
00131 void flgr1d_dilate_resizeable_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00132
00133 flgr1d_raster_slide_structuring_function_fgINT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgINT32);
00134 }
00135 void flgr1d_dilate_resizeable_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00136
00137 flgr1d_raster_slide_structuring_function_fgFLOAT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgFLOAT32);
00138 }
00139 void flgr1d_dilate_resizeable_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00140
00141 flgr1d_raster_slide_structuring_function_fgFLOAT64(datdest, datsrc, semap, shape,flgr1d_get_nhb_maximum_fgFLOAT64);
00142 }
00144
00157
00158 FLGR_Ret flgr1d_dilate_resizeable(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00159 FLGR_Ret ret;
00160
00161
00162
00163 if((datdest==NULL) || (datsrc==NULL) || (semap==NULL)){
00164 POST_ERROR("Null objects!\n");
00165 return FLGR_RET_NULL_OBJECT;
00166 }
00167
00168 if((ret=flgr1d_is_data_same_attributes(datdest,datsrc,__FUNCTION__))!=FLGR_RET_OK) return ret;
00169 if((ret=flgr1d_is_data_same_length(semap,datdest))!=FLGR_RET_OK) return ret;
00170
00171 if(semap->type != FLGR_INT32) {
00172 POST_ERROR("Image Maps must be represented in fgINT32 format!\n");
00173 return FLGR_RET_PARAM_UNKNOWN;
00174 }
00175
00176
00177 FLGR_DISPATCH_PROCEDURE(datdest->type,flgr1d_dilate_resizeable,datdest,datsrc,semap,shape);
00178
00179 }
00180
00181
00182
00183
00184 void flgr1d_median_resizeable_fgBIT(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00185 flgr_no_define_type_function(FLGR_BIT);
00186 }
00187 void flgr1d_median_resizeable_fgUINT8(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00188
00189 flgr1d_raster_slide_structuring_function_fgUINT8(datdest, datsrc, semap, shape,flgr1d_get_nhb_median_fgUINT8);
00190 }
00191 void flgr1d_median_resizeable_fgUINT16(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00192
00193 flgr1d_raster_slide_structuring_function_fgUINT16(datdest, datsrc, semap, shape,flgr1d_get_nhb_median_fgUINT16);
00194 }
00195 void flgr1d_median_resizeable_fgUINT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00196
00197 flgr1d_raster_slide_structuring_function_fgUINT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_median_fgUINT32);
00198 }
00199 void flgr1d_median_resizeable_fgINT8(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00200
00201 flgr1d_raster_slide_structuring_function_fgINT8(datdest, datsrc, semap, shape,flgr1d_get_nhb_median_fgINT8);
00202 }
00203 void flgr1d_median_resizeable_fgINT16(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00204
00205 flgr1d_raster_slide_structuring_function_fgINT16(datdest, datsrc, semap, shape,flgr1d_get_nhb_median_fgINT16);
00206 }
00207 void flgr1d_median_resizeable_fgINT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00208
00209 flgr1d_raster_slide_structuring_function_fgINT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_median_fgINT32);
00210 }
00211 void flgr1d_median_resizeable_fgFLOAT32(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00212
00213 flgr1d_raster_slide_structuring_function_fgFLOAT32(datdest, datsrc, semap, shape,flgr1d_get_nhb_median_fgFLOAT32);
00214 }
00215 void flgr1d_median_resizeable_fgFLOAT64(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00216
00217 flgr1d_raster_slide_structuring_function_fgFLOAT64(datdest, datsrc, semap, shape,flgr1d_get_nhb_median_fgFLOAT64);
00218 }
00220
00233
00234 FLGR_Ret flgr1d_median_resizeable(FLGR_Data1D *datdest, FLGR_Data1D *datsrc, FLGR_Data1D *semap, FLGR_Shape shape) {
00235 FLGR_Ret ret;
00236
00237
00238
00239 if((datdest==NULL) || (datsrc==NULL) || (semap==NULL)){
00240 POST_ERROR("Null objects!\n");
00241 return FLGR_RET_NULL_OBJECT;
00242 }
00243
00244 if((ret=flgr1d_is_data_same_attributes(datdest,datsrc,__FUNCTION__))!=FLGR_RET_OK) return ret;
00245 if((ret=flgr1d_is_data_same_length(semap,datdest))!=FLGR_RET_OK) return ret;
00246
00247 if(semap->type != FLGR_INT32) {
00248 POST_ERROR("Image Maps must be represented in fgINT32 format!\n");
00249 return FLGR_RET_PARAM_UNKNOWN;
00250 }
00251
00252 FLGR_DISPATCH_PROCEDURE(datdest->type,flgr1d_median_resizeable,datdest,datsrc,semap,shape);
00253
00254
00255 }
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265 void flgr2d_erode_resizeable_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00266
00267 flgr2d_raster_slide_structuring_function_fgBIT(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgBIT);
00268 }
00269 void flgr2d_erode_resizeable_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00270
00271 flgr2d_raster_slide_structuring_function_fgUINT8(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgUINT8);
00272 }
00273 void flgr2d_erode_resizeable_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00274
00275 flgr2d_raster_slide_structuring_function_fgUINT16(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgUINT16);
00276 }
00277 void flgr2d_erode_resizeable_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00278
00279 flgr2d_raster_slide_structuring_function_fgUINT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgUINT32);
00280 }
00281 void flgr2d_erode_resizeable_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00282
00283 flgr2d_raster_slide_structuring_function_fgINT8(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgINT8);
00284 }
00285 void flgr2d_erode_resizeable_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00286
00287 flgr2d_raster_slide_structuring_function_fgINT16(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgINT16);
00288 }
00289 void flgr2d_erode_resizeable_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00290
00291 flgr2d_raster_slide_structuring_function_fgINT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgINT32);
00292 }
00293 void flgr2d_erode_resizeable_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00294
00295 flgr2d_raster_slide_structuring_function_fgFLOAT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgFLOAT32);
00296 }
00297 void flgr2d_erode_resizeable_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00298
00299 flgr2d_raster_slide_structuring_function_fgFLOAT64(datdest, datsrc, semap, shape,flgr2d_get_nhb_minimum_fgFLOAT64);
00300 }
00302
00324
00325 FLGR_Ret flgr2d_erode_resizeable(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00326 FLGR_Ret ret;
00327
00328
00329
00330 if((datdest==NULL) || (datsrc==NULL) || (semap==NULL)){
00331 POST_ERROR("Null objects!\n");
00332 return FLGR_RET_NULL_OBJECT;
00333 }
00334
00335 if((ret=flgr2d_is_data_same_attributes(datdest,datsrc,__FUNCTION__))!=FLGR_RET_OK) return ret;
00336 if((ret=flgr2d_is_data_same_size(semap,datdest))!=FLGR_RET_OK) return ret;
00337
00338 if(semap->type != FLGR_INT32) {
00339 POST_ERROR("Image SE Map must be represented in fgINT32 format!\n");
00340 return FLGR_RET_PARAM_UNKNOWN;
00341 }
00342
00343 FLGR_DISPATCH_PROCEDURE(datdest->type,flgr2d_erode_resizeable,datdest,datsrc,semap,shape);
00344
00345 }
00346
00347
00348
00349 void flgr2d_dilate_resizeable_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00350
00351 flgr2d_raster_slide_structuring_function_fgBIT(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgBIT);
00352 }
00353 void flgr2d_dilate_resizeable_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00354
00355 flgr2d_raster_slide_structuring_function_fgUINT8(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgUINT8);
00356 }
00357 void flgr2d_dilate_resizeable_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00358
00359 flgr2d_raster_slide_structuring_function_fgUINT16(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgUINT16);
00360 }
00361 void flgr2d_dilate_resizeable_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00362
00363 flgr2d_raster_slide_structuring_function_fgUINT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgUINT32);
00364 }
00365 void flgr2d_dilate_resizeable_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00366
00367 flgr2d_raster_slide_structuring_function_fgINT8(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgINT8);
00368 }
00369 void flgr2d_dilate_resizeable_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00370
00371 flgr2d_raster_slide_structuring_function_fgINT16(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgINT16);
00372 }
00373 void flgr2d_dilate_resizeable_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00374
00375 flgr2d_raster_slide_structuring_function_fgINT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgINT32);
00376 }
00377 void flgr2d_dilate_resizeable_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00378
00379 flgr2d_raster_slide_structuring_function_fgFLOAT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgFLOAT32);
00380 }
00381 void flgr2d_dilate_resizeable_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00382
00383 flgr2d_raster_slide_structuring_function_fgFLOAT64(datdest, datsrc, semap, shape,flgr2d_get_nhb_maximum_fgFLOAT64);
00384 }
00386
00408
00409 FLGR_Ret flgr2d_dilate_resizeable(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00410 FLGR_Ret ret;
00411
00412
00413
00414 if((datdest==NULL) || (datsrc==NULL) || (semap==NULL)){
00415 POST_ERROR("Null objects!\n");
00416 return FLGR_RET_NULL_OBJECT;
00417 }
00418
00419 if((ret=flgr2d_is_data_same_attributes(datdest,datsrc,__FUNCTION__))!=FLGR_RET_OK) return ret;
00420 if((ret=flgr2d_is_data_same_size(semap,datdest))!=FLGR_RET_OK) return ret;
00421
00422 if(semap->type != FLGR_INT32) {
00423 POST_ERROR("Image Maps must be represented in fgINT32 format!\n");
00424 return FLGR_RET_PARAM_UNKNOWN;
00425 }
00426
00427
00428 FLGR_DISPATCH_PROCEDURE(datdest->type,flgr2d_dilate_resizeable,datdest,datsrc,semap,shape);
00429
00430 }
00431
00432
00433
00434
00435 void flgr2d_median_resizeable_fgBIT(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00436 flgr_no_define_type_function(FLGR_BIT);
00437 }
00438 void flgr2d_median_resizeable_fgUINT8(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00439
00440 flgr2d_raster_slide_structuring_function_fgUINT8(datdest, datsrc, semap, shape,flgr2d_get_nhb_median_fgUINT8);
00441 }
00442 void flgr2d_median_resizeable_fgUINT16(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00443
00444 flgr2d_raster_slide_structuring_function_fgUINT16(datdest, datsrc, semap, shape,flgr2d_get_nhb_median_fgUINT16);
00445 }
00446 void flgr2d_median_resizeable_fgUINT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00447
00448 flgr2d_raster_slide_structuring_function_fgUINT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_median_fgUINT32);
00449 }
00450 void flgr2d_median_resizeable_fgINT8(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00451
00452 flgr2d_raster_slide_structuring_function_fgINT8(datdest, datsrc, semap, shape,flgr2d_get_nhb_median_fgINT8);
00453 }
00454 void flgr2d_median_resizeable_fgINT16(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00455
00456 flgr2d_raster_slide_structuring_function_fgINT16(datdest, datsrc, semap, shape,flgr2d_get_nhb_median_fgINT16);
00457 }
00458 void flgr2d_median_resizeable_fgINT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00459
00460 flgr2d_raster_slide_structuring_function_fgINT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_median_fgINT32);
00461 }
00462 void flgr2d_median_resizeable_fgFLOAT32(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00463
00464 flgr2d_raster_slide_structuring_function_fgFLOAT32(datdest, datsrc, semap, shape,flgr2d_get_nhb_median_fgFLOAT32);
00465 }
00466 void flgr2d_median_resizeable_fgFLOAT64(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00467
00468 flgr2d_raster_slide_structuring_function_fgFLOAT64(datdest, datsrc, semap, shape,flgr2d_get_nhb_median_fgFLOAT64);
00469 }
00471
00493
00494 FLGR_Ret flgr2d_median_resizeable(FLGR_Data2D *datdest, FLGR_Data2D *datsrc, FLGR_Data2D *semap, FLGR_Shape shape) {
00495 FLGR_Ret ret;
00496
00497
00498
00499 if((datdest==NULL) || (datsrc==NULL) || (semap==NULL)){
00500 POST_ERROR("Null objects!\n");
00501 return FLGR_RET_NULL_OBJECT;
00502 }
00503
00504 if((ret=flgr2d_is_data_same_attributes(datdest,datsrc,__FUNCTION__))!=FLGR_RET_OK) return ret;
00505 if((ret=flgr2d_is_data_same_size(semap,datdest))!=FLGR_RET_OK) return ret;
00506
00507 if(semap->type != FLGR_INT32) {
00508 POST_ERROR("Image Maps must be represented in fgINT32 format!\n");
00509 return FLGR_RET_PARAM_UNKNOWN;
00510 }
00511
00512 FLGR_DISPATCH_PROCEDURE(datdest->type,flgr2d_median_resizeable,datdest,datsrc,semap,shape);
00513
00514
00515 }
00516
00517
00518
00519