Python Forum
Open CV game sprite recognition
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Open CV game sprite recognition
#1
Hello,
I am starting to work on OpenCV college project, and as a part of this I need to build an app that will recognize a selected sprite from the game.

So far I am able to recognize faces by using cascade classifiers, however in this scenario it's too resource consuming. Each sprite has 4 - 8 variations only, therefore, I though it's better to recognize it as shape.

Is there anyone experienced who could assist me with this?
Here is the code I wrote

import cv2
import numpy as np
from matplotlib import pyplot as plt
# import pics

img = cv2.imread('../pics/screen.jpg',0)
img2 = cv2.imread('../pics/screen.jpg',0)
template = cv2.imread('../pics/sprite.jpg',0)

w, h = template.shape[::-1]

print (w)
# All the 6 methods for comparison in a list
methods = ['cv2.TM_CCOEFF', 'cv2.TM_CCOEFF_NORMED', 'cv2.TM_CCORR',
            'cv2.TM_CCORR_NORMED', 'cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED']

for meth in methods:
    img = img2.copy()
    method = eval(meth)

    # Apply template Matching
    res = cv2.matchTemplate(img,template,method)
    min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)

    # If the method is TM_SQDIFF or TM_SQDIFF_NORMED, take minimum
    if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]:
        top_left = min_loc
    else:
        top_left = max_loc

    bottom_right = (top_left[0] + w, top_left[1] + h)

    cv2.rectangle(img,top_left, bottom_right, 255, 2)

    plt.subplot(121),plt.imshow(res,cmap = 'gray')
    plt.title('Matching Result'), plt.xticks([]), plt.yticks([])
    plt.subplot(122),plt.imshow(img,cmap = 'gray')
    plt.title('Detected Point'), plt.xticks([]), plt.yticks([])
    plt.suptitle(meth)

    plt.show()
and here are the picutres I am using



[Image: GTYbJQw]

İmage

https://ibb.co/GTYbJQw
https://ibb.co/r2C4b0y

After 2 days of reaserching various options my feelings are that this task is not doable... If someone can provide some help I would be super grateful
Reply
#2
I've tracked changing images in a video based on a template using openCV and a particle filter. Not sure if the time needed to learn how to do this is feasible to you though.
Reply
#3
thanks so much for suggestion - Im going to research in this topic.

In the meantime, if anyone has other suggestions - please let me knwo.

(Feb-24-2019, 04:55 AM)Mekire Wrote: I've tracked changing images in a video based on a template using openCV and a particle filter. Not sure if the time needed to learn how to do this is feasible to you though.

Would you be able to recommend any readings / tutorials in this subject?
Reply
#4
Can you access this course?
https://classroom.udacity.com/courses/ud810
I think it should be free.

If you can, watch lessons 46-49 abouts.
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020