How to detect patterns of irregular shaped objects in a noisy color/gray Image?

2 views (last 30 days)
I have an image taken from a digital camera. The Image has the following characteristics:
  1. Its a high resolution Image.
  2. The Object(whose Image is captured) lies within 1.5-2 feet.
  3. Object is stationary (it does not move during capture).
  4. There is a large amount of noise present in the Image(this noise is not due to improper acquisition system but due the object itself being 'NOISY' while capture. for eg: a muddy Vehicle registration plate)
  5. The edges of patterns in the image are visible.
  6. The area of patterns are 10 times the area of these 'noisy' elements. If I could somehow get the edges of those patterns then it would be sufficient for me to continue with my work.
I just need to know in short what approach to be used i.e what are blocks are/might be required. Any tips/hints/suggestions?

Accepted Answer

Image Analyst
Image Analyst on 12 Dec 2013
First denoise the image. This could be done in a variety of ways, from the simple box filter and median filter to more sophisticated methods like anisotropic diffusion, BM3D, non-local means, K-SVD, K-LLD or the like.
Then process image to a point where you can threshold it. This may require locally adaptive methods like stdfilt, adapthisteq, or others depending on what the image looks like.
Then threshold, label, and call regionprops(). Then look at the perimeter^2/(4*pi*area) ratio to pick out those that are irregularly shaped, as opposed to smoother.
Posting an image would get you better recommendations.
  1 Comment
Amit Nambiar
Amit Nambiar on 12 Dec 2013
Thank you so much Image Analyst!!! I will follow these guidelines and start working on it right away. I will post here any difficulties if they occur. Thank you so much sir!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!