Keyes34
Keyes34

Reputation: 171

Selecting Overlapping / Touching regions (Binary Images, Matlab)

I'm trying to select overlapping/ touching images from 2 binary images. The first image (blue circles) has the main body and I want to find any green triangles attached to it.

1st Binary Image here (colored for identification) 1st Binary Image

2nd Binary Image here 2nd Binary Image

FinalImage = BinaryImage1 | BinaryImage2;

**Apply Filter**

Expected result: Filtered Images

Note how the unattached Green triangles are removed, & all blue circles are retained.

Is there a way to do this trick?

Upvotes: 2

Views: 575

Answers (1)

hbaderts
hbaderts

Reputation: 14316

This calls for a morphological reconstruction! In morphological reconstruction, you specify a marker and start reconstructing the original image from that marker point using a morphological dilation.

Luckily for us, MATLAB already has a function for that, called imreconstruct in the Image Processing Toolbox, which is called by imreconstruct(marker,image)

To recognize touching, but non-overlapping figures, we can just do a dilation on one of the input image to make touching figures overlap. As structuring element we can e.g. use a 3x3 square, so we also recognize 8-connected figures. After that we use the overlapping points as markers and do the morphological reconstruction using the combined image.

dilatedImage1 = imdilate(binaryImage1, strel('square',3));
finalImage = imreconstruct(dilatedImage1&binaryImage2, dilatedImage1|binaryImage2);

As you write that all circles, i.e. all parts from binaryImage1 should be retained, we can just add binaryImage1 to the result using

finalImage = finalImage | binaryImage1;

For your two example images, this results in:

final image

The circle on the upper right is not connected to any triangle. I don't know how that triangle appeared in your expected result image, but I suppose this is only for demonstration purposes.

Note: I imported the .jpg example images in MATLAB, which lead to ugly borders, so I did a morphological opening on the images first. The borders are still not optimal, but it doesn't look that bad.

Upvotes: 2

Related Questions