Ask Your Question

Effecient ways to merge blob whose position inside another blob using cvbloblib

asked 2014-02-25 04:35:35 -0500

vsay gravatar image

updated 2015-10-06 08:42:59 -0500

I basically want to remove all blobs whose positions insides another blobs.

image description

I use the cvbloblib . I can get all the blobs; however, the library basically detect all blob even the position of those blob inside another.

I think of using iterative ways to detect if each blob inside another and merge them together.

for (int i = 0; i<res.GetNumBlobs(); i++){
       for (int j = 0; i<res.GetNumBlobs(); i++){
              //find if each blob is inside another
              if(condition blob(i) inside){
                       //break or return to another blob(i+1)

However there are some issues :

  1. iterative ways is not effecient way

  2. You see in the image above, there are the cases where a blobs insides not 1 but could be another N blobs. so I tend to think about recursive function to do that.

Do you have any ways to merge those blobs inside ?

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2014-02-25 06:08:48 -0500

May be you could ask Will Stewart to share his solution ( because I think that can be applied to your problem (I mean partitioned, non-hierarchical agglomerative clustering approach).

edit flag offensive delete link more

Question Tools


Asked: 2014-02-25 04:35:35 -0500

Seen: 990 times

Last updated: Feb 25 '14