Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
adjacent vs overlapping blobs

Subject: adjacent vs overlapping blobs

From: Daphne

Date: 19 Aug, 2008 12:22:02

Message: 1 of 6


I would like to differentiate between two adjacent,
circular blobs and those that are overlapping.
Using the example in the help file for bwdist I see that
if the blobs overlap there tends to be a line connecting
the centers.
When blobs are just touching, but not overlapping (try
changing the 1.4 in the line to 1)
radius = dist/2 * 1.4;
Here, there is no line between the centers.
Is there any way to algorithmically determine if such a
line exists?

Thanks!
Daphne

Subject: adjacent vs overlapping blobs

From: Walter Roberson

Date: 25 Aug, 2008 04:35:05

Message: 2 of 6

Daphne wrote:
> I would like to differentiate between two adjacent,
> circular blobs and those that are overlapping.
> Using the example in the help file for bwdist I see that
> if the blobs overlap there tends to be a line connecting
> the centers.

Hmmm, I thought I had seen someone reply to you, but I don't see
a reply now. Perhaps someone else had asked a very similar question
and I'm remembering the reply to that.

The algorithm that I recall being mentioned was to imerode().
If the blobs are touching but not overlapping (or not overlapping
much) then the imerode() would open it up into two separate blobs
when you bwlabel().

--
Q = quotation(rand);
if isempty(Q); error('Quotation server filesystem problems')
else sprintf('%s',Q), end

Subject: adjacent vs overlapping blobs

From: Daphne

Date: 25 Aug, 2008 09:11:01

Message: 3 of 6


Thanks for the info, but I would rather not erode the
image. I would like to be able to keep all the original
information.
This will serve for accurate particle tracking.

Thanks,
Daphne

Walter Roberson <roberson@hushmail.com> wrote in message
<ZDqsk.36233$hx.12223@pd7urf3no>...
> Daphne wrote:
> > I would like to differentiate between two adjacent,
> > circular blobs and those that are overlapping.
> > Using the example in the help file for bwdist I see
that
> > if the blobs overlap there tends to be a line
connecting
> > the centers.
>
> Hmmm, I thought I had seen someone reply to you, but I
don't see
> a reply now. Perhaps someone else had asked a very
similar question
> and I'm remembering the reply to that.
>
> The algorithm that I recall being mentioned was to
imerode().
> If the blobs are touching but not overlapping (or not
overlapping
> much) then the imerode() would open it up into two
separate blobs
> when you bwlabel().
>
> --
> Q = quotation(rand);
> if isempty(Q); error('Quotation server filesystem
problems')
> else sprintf('%s',Q), end

Subject: adjacent vs overlapping blobs

From: ImageAnalyst

Date: 25 Aug, 2008 12:01:03

Message: 4 of 6

On Aug 25, 5:11=A0am, "Daphne " <daphnew_too_nos...@yahoo.com> wrote:
> Thanks for the info, but I would rather not erode the
> image. I would like to be able to keep all the original
> information.
> This will serve for accurate particle tracking.
>
> Thanks,
> Daphne
>
> Walter Roberson <rober...@hushmail.com> wrote in message
>
> <ZDqsk.36233$hx.12223@pd7urf3no>...
>
>
>
> > Daphne wrote:
> > > I would like to differentiate between two adjacent,
> > > circular blobs and those that are overlapping.
> > > Using the example in the help file for bwdist I see
> that
> > > if the blobs overlap there tends to be a line
> connecting
> > > the centers.
>
> > Hmmm, I thought I had seen someone reply to you, but I
> don't see
> > a reply now. Perhaps someone else had asked a very
> similar question
> > and I'm remembering the reply to that.
>
> > The algorithm that I recall being mentioned was to
> imerode().
> > If the blobs are touching but not overlapping (or not
> overlapping
> > much) then the imerode() would open it up into two
> separate blobs
> > when you bwlabel().
>
> > --
> > Q =3D quotation(rand);
> > if isempty(Q); error('Quotation server filesystem
> problems')
> > else sprintf('%s',Q), end- Hide quoted text -
>
> - Show quoted text -

Daphne:
Just threshold the image, do bwlabel, and do regionprops. I forget
the things regionprops can measure but if it has circularity then use
that. If not just get the perimeter, square it, and divide it by the
(area*4*pi). The more circular it is, the closer this ratio will be
to 1. Look at all your blobs and find out the ratio that seems to
divide your overlapped disks from your single disks.
Regards,
ImageAnalyst

Subject: adjacent vs overlapping blobs

From: Walter Roberson

Date: 25 Aug, 2008 14:36:47

Message: 5 of 6

Daphne wrote:
> Thanks for the info, but I would rather not erode the
> image. I would like to be able to keep all the original
> information.

So when you erode the image, don't store the result over top
of the uneroded image: just use the eroded image to answer the
Yes/No question that you posed of whether two blobs are adjacent
or overlapping. Once you know that, throw the eroded image away.
 


--
Q = quotation(rand);
if isempty(Q); error('Quotation server filesystem problems')
else sprintf('%s',Q), end

Subject: adjacent vs overlapping blobs

From: Daphne

Date: 25 Aug, 2008 20:14:03

Message: 6 of 6


Thanks.
Not exactly what I had in mind, but I will try to work
through it myself.
The idea was to use bwdist to define and find two very
close by particles, and then find their centroids. I can
use bwlabel to find blobs of every which size, but how do
you determine if a large blob is two nearby, or
overlapping? Size and skewness alone are not enough,
typically.

thanks for trying!
Daphne

Walter Roberson <roberson@hushmail.com> wrote in message
<3szsk.215556$gc5.173823@pd7urf2no>...
> Daphne wrote:
> > Thanks for the info, but I would rather not erode the
> > image. I would like to be able to keep all the
original
> > information.
>
> So when you erode the image, don't store the result over
top
> of the uneroded image: just use the eroded image to
answer the
> Yes/No question that you posed of whether two blobs are
adjacent
> or overlapping. Once you know that, throw the eroded
image away.
>
>
>
> --
> Q = quotation(rand);
> if isempty(Q); error('Quotation server filesystem
problems')
> else sprintf('%s',Q), end

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us