Можно ли отобразить цветной текст на рамке Canny Edge? - PullRequest
0 голосов
/ 11 июня 2019

Пожалуйста, прости меня за вопрос, я совсем новичок в OpenCV.Я использую обнаружение хитрых краев в программе подсчета людей, и каждый раз, когда человек входит в кадр, в центре человека помещается идентификационная точка.До того, как я применил код для генерации хитрых краев, я отображал идентификаторы как зеленые, однако с хитрыми краями я не вижу никакого цвета.Скорее, идентификаторы просто контуры и ничего больше.Мне бы очень хотелось сохранить цвет, так как его было бы намного легче увидеть на черно-белом фоне.

Вот изображение кадра, которое у меня появилось после появления Canny Edge

Here is a picture of the frame that I have after Canny Edge has occurred В левом нижнем углу вы можете увидеть текст, который я хотел бы раскрасить, но он был изменен по краям.

Можно ли отображать цветной текст в сочетании сОбнаружение Canny Edge?

1 Ответ

0 голосов
/ 12 июня 2019

Я тестировал с использованием opencv 4.0.1, и он работает, как и ожидалось: вы можете преобразовать выходное изображение края в изображение bgr, а затем поместить все цветные элементы, которые вам нужны.Вот небольшой пример, как это сделать:

    import cv2 as cv
    img = cv.imread(filename, cv.IMREAD_COLOR) 
    img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

    filt = cv.medianBlur(img_gray, 9)
    filt = cv.blur(filt, (3, 3))

    edges = cv.Canny(filt, 10, 50)

    edges_bgr = cv.cvtColor(edges, cv.COLOR_GRAY2BGR)
    w,h = edges_bgr.shape[:2]
    center = (int(h/2), int(w/2))
    radius = 100
    cv.circle(edges_bgr, center, radius, (255,128,0), 3)

    font = cv.FONT_HERSHEY_SIMPLEX
    bottomLeftCornerOfText = center
    fontScale = 1
    lineType = 2

    cv.putText(edges_bgr,'Text with colors', 
                bottomLeftCornerOfText, 
                font, 
                fontScale,
                (0,128,255),
                lineType)

    cv.imshow("edges with colors", edges_bgr)

enter image description here

...