필터 지우기
필터 지우기

Help identifying circles besides using "imfindcircle" function

조회 수: 4 (최근 30일)
Isaiah Stefan Engle
Isaiah Stefan Engle 2017년 2월 19일
편집: Image Analyst 2017년 2월 20일
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 "imfindcircle" 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 im working with. The particles I need to tell are the smaller ones)

답변 (2개)

Image Analyst
Image Analyst 2017년 2월 19일
Try imtophat() or imbothat().
  댓글 수: 1
Image Analyst
Image Analyst 2017년 2월 20일
편집: Image Analyst 2017년 2월 20일
See attached demo. It looks like imbothat() is the most promising.

댓글을 달려면 로그인하십시오.


Walter Roberson
Walter Roberson 2017년 2월 19일
You appear to have particles at different layers in a solution. You would have difficult discriminating between particles that happen to have similar x and y coordinates but different z, compared to particles that are touching (similar x and y and z).
With such a wide variety of circle shapes and intensities, I think even a human would have a quite difficult time finding all of the circles.
Some of your circles appear to have a bright center, but most of them appear to have a dark center. You also have bright circles.
I suggest that you could use imregionalmax on the image as-is to locate the bright spots. You can then regionprops() to examine the Solidity of each blob, eliminating the ones with low solidity (because those are the ones that are bright circles.), leaving only the small bright centers. Then, invert the image and repeat to find the small centers that are currently black dots. bwarealfit to remove the large blob in the center.

카테고리

Help CenterFile Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by