Как отделить черную кривую от черных текстов в OpenCV с Python - PullRequest
0 голосов
/ 22 января 2019
import numpy as np
import cv2
im = cv2.imread("goldstandard.png")
nemo = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
hsv_nemo = cv2.cvtColor(nemo, cv2.COLOR_RGB2HSV)
dictionaryHSV = {
    "greenCombo": [[30, 126, 87], [70, 255, 250]],
    'red': [[0, 92, 212], [10, 265, 255]],
    'blue': [[110, 7, 214], [130, 255, 255]],
    'black': [[0, 0, 0], [10, 10, 40]],
    'another1': [[20, 245, 151], [40, 255, 231]],
    'pink': [[140, 126, 215], [160, 146, 255]]
}

for r1, r2 in dictionaryHSV.values():
    lower = np.array(r1)
    upper = np.array(r2)
    mask = cv2.inRange(hsv_nemo, lower, upper)
    # cv2.imshow("masked",mask)
    # cv2.waitKey(0)
    nm = np.ones((nemo.shape[0], nemo.shape[1], nemo.shape[2]), dtype=np.uint8)
    for i in range(nm.shape[0]):
        for j in range(nm.shape[1]):
            nm[i][j] = (255, 255, 255)
    result = cv2.bitwise_and(nm, nm, mask=mask)
    cv2.imshow("mappped", result)
    cv2.waitKey(0)

У меня есть изображения графика кривой, и я хочу разделить все кривые по цвету. У меня возникает проблема, когда я сталкиваюсь с черной кривой, я получаю черную кривую вместе с черным текстом на графике. Я хочу получить только кривуюне текст.Я использовал цветовые диапазоны в цветовом пространстве «HSV» для распознавания цветов.Заранее спасибо.

img

1 Ответ

0 голосов
/ 23 января 2019
  1. Извлечение области внутри квадрата.
  2. Удалить все не черные пиксели.
  3. Найти все контуры.
  4. Выберите самый большой контур - это будет ваша кривая.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...