summaryrefslogtreecommitdiff
path: root/im/src/process/im_analyze.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'im/src/process/im_analyze.cpp')
-rwxr-xr-xim/src/process/im_analyze.cpp23
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);