diff options
Diffstat (limited to 'im/src/process/im_analyze.cpp')
-rwxr-xr-x | im/src/process/im_analyze.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/im/src/process/im_analyze.cpp b/im/src/process/im_analyze.cpp index 6fa9405..5a775a0 100755 --- a/im/src/process/im_analyze.cpp +++ b/im/src/process/im_analyze.cpp @@ -2,7 +2,7 @@ * \brief Image Analysis * * See Copyright Notice in im_lib.h - * $Id: im_analyze.cpp,v 1.2 2009/09/28 20:19:09 scuri Exp $ + * $Id: im_analyze.cpp,v 1.5 2010/01/22 19:47:56 scuri Exp $ */ @@ -139,7 +139,7 @@ static int DoAnalyzeFindRegions(int width, int height, imbyte* map, imushort* ne int region_count = 2; // 0- background, 1-border imushort* alias_table = new imushort [MAX_COUNT]; - memset(alias_table, 0, MAX_COUNT); // aliases are all zero at start (not used) + memset(alias_table, 0, MAX_COUNT*sizeof(imushort)); // aliases are all zero at start (not used) for (i = 1; i < height; i++) { @@ -273,7 +273,7 @@ static int DoAnalyzeFindRegionsBorder(int width, int height, imbyte* map, imusho int region_count = 2; // still consider: 0- background, 1-border imushort* alias_table = new imushort [MAX_COUNT]; - memset(alias_table, 0, MAX_COUNT); // aliases are all zero at start (not used) + memset(alias_table, 0, MAX_COUNT*sizeof(imushort)); // aliases are all zero at start (not used) for (i = 0; i < height; i++) { @@ -981,7 +981,7 @@ void imAnalyzeMeasurePerimeter(const imImage* image, float* perim_data, int regi imushort* map = (imushort*)image->data[0]; - memset(perim_data, 0, region_count*sizeof(int)); + memset(perim_data, 0, region_count*sizeof(float)); int width = image->width; int height = image->height; @@ -1203,8 +1203,19 @@ void imProcessRemoveByArea(const imImage* image, imImage* NewImage, int connect, if (end_size == 0) end_size = image->width*image->height; - int outside=0; - if (!inside) outside = 1; + int outside; + if (inside) + { + /* remove from inside */ + inside = 0; + outside = 1; + } + else + { + /* remove from outside */ + inside = 1; + outside = 0; + } int* area_data = (int*)malloc(region_count*sizeof(int)); imAnalyzeMeasureArea(region_image, area_data, region_count); |