0

I have an image of particles of which I am trying to identify whether they have bonded in the image or not by whether or not they are touching. I have already used the imfindcircles function but have noticed it always comes up with some false positives or fails to pick up all the correct bonded particles.

Therefore, I am attempting to come up with another way in which to identify circles and compare this to the previous imfindcircles function. I want to be able to possibly graph the intensity of the image and then take the integral of each peak to find the area of each circle. Then, if the area of the circle is within a certain range (area of two particles bonded) then it will be identified as a bonded particle.

The only problem is I don't know if the graphing portion is possible. If anyone has ideas it would be greatly appreciated.

Below is the image I'm working with. The particles I need to tell are the smaller ones:

image

Dev-iL
  • 23,742
  • 7
  • 57
  • 99
  • Maybe you could provide an additional, *"marked up"* image that shows what you are trying to find and what is different about it... – Mark Setchell Feb 19 '17 at 23:01

2 Answers2

1

Threshold the image. (You can check what is the background value and than give value 1 for all the pixels that have bigger or smaller value from the background plus some Delta).

Find connected components. (Bwcomponent)

Use region props to check for components that are close to a circle. (Region props). You can do it but looking at the ratio between the perimeter and the area of the component or at the eccintricty of the component.

Amitay Nachmani
  • 3,259
  • 1
  • 18
  • 21
0

Try to have a look at this:

http://uk.mathworks.com/matlabcentral/fileexchange/9168-detect-circles-with-various-radii-in-grayscale-image-via-hough-transform

Hough transform can be used for finding circles and lines in images.

roadRunner
  • 100
  • 1
  • 9