1

My environment:

I'm doing some image processing using Emgu CV (v 3.2), which is just an OpenCV C# wrapper API, in Visual Studio 2013 for Windows 10.

What I'm intending to do:

Given an image (of a floor plan), the user selects a region (a symbol on the floor plan) and all the matching symbols on that floor plan get highlighted.

How I'm currently doing it:

I've considered machine learning as a potential solution but that requires training data and there are no standard symbols on these floor plans to train with. I have also considered using feature detection, but given that these are flat, 2-D, gray-scale images I feel as if that would be excessive for our purposes. So, I've decided on using Template Matching.

The problem:

In Emgu's MatchTemplate function, it returns a heat-map of probable locations for matches. The problem is, my program is highlighting the same region many times, due to this heat map being "hot" for a few pixels in a row. How can I distinguish between an area that has already been highlighted, and an area that has not?

Any help would be appreciated!

Community
  • 1
  • 1
  • Get the location of the best match. Either in the desired image mask this region (size should be the size of the template) and redo a template matching or in the heat map mask a little around this region (e.g. template_size/4)? – Catree May 30 '17 at 17:09

0 Answers0