Не удалось получить символы / треугольники - PullRequest
1 голос
/ 21 апреля 2019

Я хотел прочитать символы / треугольники из бара.

Сначала я применил Оцу с другими значениями к этой панели, но не смог правильно получить все символы.Также я попробовал обнаружение треугольника, но не смог извлечь снова.Цвета персонажей меняются.Может ли кто-нибудь дать другой способ / алгоритм их извлечения?Кроме того, есть ли какой-нибудь способ подметать цвета, я имею в виду попробовать все цвета, а затем, если они есть, извлечь (извлечь все цветные из черно-белого фонового изображения)?*

enter image description here

Лучшее, что я получил, но безуспешно:

enter image description here

1 Ответ

1 голос
/ 22 апреля 2019

Ваша проблема лучше всего решается с помощью цветоделения.Для этого вы можете использовать функцию inrange() ( документы ).Это обычно делается лучше всего в цветовом пространстве HSV.Приведенный ниже код показывает, как вы можете это сделать.

Вы можете использовать этот скрипт , чтобы найти диапазоны значений, необходимые для разделения цвета.Он также имеет образец изображения, которое может помочь вам понять, как работает HSV.

Результат:
enter image description here

Только фиолетовый:
enter image description here

Код:

    import numpy as np 
    import cv2
    # load image
    img = cv2.imread("image.png")

     # Convert BGR to HSV
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

    # define range of HSV-color
    lower_val = np.array([0,50,80])
    upper_val = np.array([179,255,255])
    # purple only
    #lower_val = np.array([140,50,80])
    #upper_val = np.array([170,255,255])

    # Threshold the HSV image to get a mask that holds the markings
    mask = cv2.inRange(hsv, lower_val, upper_val)

    # create an image of the markings with background excluded
    img_masked = cv2.bitwise_and(img,img,mask=mask)

    # display image
    cv2.imshow("result", img_masked)

    cv2.waitKey(0)
    cv2.destroyAllWindows()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...