瀏覽代碼

i.segment: fail-safe check for minsize merging

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@57011 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz 11 年之前
父節點
當前提交
5acbc6fb9d
共有 1 個文件被更改,包括 5 次插入4 次删除
  1. 5 4
      imagery/i.segment/create_isegs.c

+ 5 - 4
imagery/i.segment/create_isegs.c

@@ -308,7 +308,7 @@ int region_growing(struct globals *globals)
 		/* Rk is now complete */
 		/* Rk is now complete */
 		G_debug(4, "Rk is now complete");
 		G_debug(4, "Rk is now complete");
 
 
-		if (Ri_nn == 0) {
+		if (Rk.id == 0) {
 		    /* this can only happen if only one segment is left */
 		    /* this can only happen if only one segment is left */
 		    G_debug(4, "Segment had no valid neighbors");
 		    G_debug(4, "Segment had no valid neighbors");
 		    pathflag = FALSE;
 		    pathflag = FALSE;
@@ -607,15 +607,16 @@ int region_growing(struct globals *globals)
 						   &Ri_similarity, 1,
 						   &Ri_similarity, 1,
 						   globals);
 						   globals);
 		    }
 		    }
+		    do_merge = 0;
 
 
-		    if (Ri_nn > 0 && Rk.id != 0) {
+		    if (Rk.id != 0) {
 			/* merge Ri with Rk */
 			/* merge Ri with Rk */
 			/* do not clear candidate flag for Rk */
 			/* do not clear candidate flag for Rk */
 			merge_regions(&Ri, &Ri_rs, &Rk, &Rk_rs, 0, globals);
 			merge_regions(&Ri, &Ri_rs, &Rk, &Rk_rs, 0, globals);
 			n_merges++;
 			n_merges++;
 
 
-			if (Ri_nn <= 0 || Ri.count >= globals->min_segment_size)
-			    do_merge = 0;
+			if (Ri.count < globals->min_segment_size)
+			    do_merge = 1;
 		    }
 		    }
 		}
 		}
 	    }
 	    }