OpenCV detecting an application frame from a set of screenshots
I have this problem, I would like to detect a particular window, from a set of screenshots. If i have 100 screenshots I would like to figure out which ones contain iTunes. I am still a noob when it comes to openCV, do i have to train and create a haar file开发者_如何学编程 for this or is there a simpler solution since application frames are not that different?
There are many different ways you could go about identifying an image containing iTunes amongst 100 screenshots.
The particular route you take will depend greatly on the details of your problem:
- Are you always looking for iTunes?
- How accurate does this have to be?
- Are false positives acceptable? How about false negatives?
- Are the screenshots always from the same system?
- Will iTunes always be maximized?
- Will the desktop background ever change?
- Must this identify iTunes under different conditions, e.g. coverflow, visualization, iTunes store?
- Will iTunes always look the same?
For starters, I would look at the absolute simplist metrics you can think of and see if they distinguish your iTunes from non-iTunes images. For example, maybe there are more gray pixels in the iTunes images than in any other. In that case you could just count gray pixels.
If that doesn't work, consider making histograms of colors. Presumably iTunes uses the same colors most of the time (gray, white light blue and green). You could then build up a library of different color histograms corresponding to iTunes use cases (playlist, iTunes store, coverflow, etc) and identify images that contain iTunes by matching histograms. See this example from the O'reilly OpenCV book.
精彩评论