Reputation: 169
I'm working on some image processing problem where I have to detect areas with a specific pattern. There is absolutely no other usable informationen in the image than the pattern - no color, no way for template matching, horrible changing lighting conditions, shadows and so on. Using the sobel operator I get a relative constistent image.
What approach could I use to detect these crossed areas? There is a lot of other stuff on the image, so blob detection based on intensity is no option.
Any help or hint would be great! Thanks!
Upvotes: 0
Views: 840
Reputation: 1450
A simple approach is a combination of directional linear filters, for example DoG or Sobel kernels. If you know the orientation of the hatched lines beforehand, you create two kernels with those orientations, and with enough elongation to sort out noise from actual straight lines. This gives you two filter response images. You can now use morphological dilation on those response images to expand the responses to the areas in between the lines. Finally you can make a two-part criterion that demands that both responses must be above a certain level, and they must be comparable in magnitude to each other.
Similar solutions exist if you don't know the orientations beforehand, but you'll need a larger filter bank and a more complex criterion (e.g. the response in a direction perpendicular to the maximum response must be at least 70% of that maximum response).
Upvotes: 2