Skip to main content
Participating Frequently
June 10, 2009
Question

pattern recognition in Photoshop?

  • June 10, 2009
  • 2 replies
  • 7267 views

Hello All,

I have a challenge facing me and would like to pose a question to this board. (If I've posted it to the wrong board, please excuse me)

To what extent can I use scripting with Photoshop to perform automated pattern recognition?

Here's my Issue: As part of a manufacturing process, I need to measure two distinct, but concentric, roughly circular areas from an image of the cross section of a circular wire.

Area1: Inner core; identified as a solid Grey filled circle.  Small diameter
Area2: Interior; composed of the inner core and other "stuff" (usually many small dark Gray colored hexagonal shapes surrounded by gold). Larger diameter

Both of these areas are concentric and surrounded by a thin outer gold layer.  

I need to calculate the percent area of the inner core which equals (Area1/Area2)*100

I am looking for a script (or guidance on how to approach creating one) that would automatically find the edges of the inner core area and the Interior Area and output these values to a file. I need it to be done in as little user input as possible. (Ex: One click to select Area1, One-Two clicks to adjust accuracy of the selection, One click to select Area2, One-Two clicks to adjust accuracy of the selection, one click to save)

Dificulties:
1) The edges of the circles are not always well defined. Grey color bleeds through to the gold outer barrier due to lighting inconsistencies. (But the edge is intact to about 90% of the circumference ususally)
2) Finding the edges needs to be fairly accurate. At least as accurate as visually tracing them with a pen input device. Therefore Smoothing the selection after using magic wand often looses accuracy (due to #1)

I can get the edges sharp with levels, contrast, etc... Using Magic wand is close, but if the tolerance is too small I get better edges, but It grabs too much in the center of the circle. If the tolerance is too large, I loose the edge accuracy. Oh, and I know (roughly) the diameter of each circle before hand (so I guess I can automate trimming the image to my target areas)

Any suggestions? Do I have to look into specialized pattern recognition software? I hope someone will be able to help me approach this challenge.

Thank you in advance.

Sincerely,

Sean

This topic has been closed for replies.

2 replies

c.pfaffenbichler
Community Expert
Community Expert
June 16, 2009

I know I’m a bit late in the discussion, but I wonder if for the determination of area-relations the histogram wouldn’t be convenient?

If the actual images are similar to the one example but showed the whole diameter of the cable one could apply Dust & Scratches and/or Median to get rid of some of the noise and the apply Hue/Saturation to completely desaturate, then Posterize to 2 and make a Wand Selection of the upper left point of the image, expand and invert that and put a white Solid Color set to 50% Opacity on top.

That would create sharp edged areas of either 255, 128 or 0 in numbers that could be read out from the Histogram.

All of that is Script-able and manual corrections could easily be applied in a Layer between the image Layer and the Hue/Saturation-Layer.

I don’t know if that would produce sufficiently exact results though.

Inspiring
June 10, 2009

It's just about impossible to say with any certainty whether it can be done with scripting in PS without a set of test images available.

Some of us have written scripts that do something similar, but whether or not they would have the precision that you apparently require

is difficult to tell.

ynachshoAuthor
Participating Frequently
June 10, 2009

Xbytor2,

Your are right, I should have posted a picture

Here is a similar image I grabbed of the net that shows what I'm trying to do.  The inner core is has an obstruction at the edge that I need photoshop to "intelligently" avoid when using the magic wand.  After using the magic wand, I've tried to smooth the selection to get the selection to follow the hidden edge, but I have to apply so much smoothing that the other sections of the selection that correctly follow the edge move off the edge too much.

Like I said, probably 90+% of the time the edges are easily selectable with the magic wand.  I just don't know how to account for cases like the example I've attached.

Also, In order to automate the removal of undesired selections in the middle of the inner core, is there any way to tell photoshop that when I use the magic wand, to automatically remove any "islands" of selections that are contained within a selection. (Assuming the "island" of selections are smal, I guess I could smooth a little bit after selecting.)

Thanks for your input.

-Sean

Participant
June 11, 2009

How about this approach...

Using a selection tool (probably Magic Wand), select the inner core. This should get most of the inner circle except for the bright spots. This selection would produce a bounding box around the inner circle. If your shape is indeed a circle, this bounding box should be square. From there, you can derive the radius of the circle, and hence the area. The same approach can be used to find the area of the outer circle.

Minor imperfections of the circle edge (like that shown in your picture) won't affect your area calculation.

Does this give you sufficient accuracy for your pattern recognition task? There might also be a way to impose further constraints using the expected circle diameter information that you have.