可以在Canny Edge框架上显示彩色文本吗?

时间:2019-06-11 13:29:53

标签: python opencv edge-detection canny-operator

请原谅我这个问题,我对OpenCV还是陌生的。我在人员计数程序上使用canny边缘检测,每当一个人走进框架时,都会在该人的中心放置一个ID点。在应用代码生成Canny边缘之前,我将ID显示为绿色,但是对于Canny边缘,我看不到任何颜色。相反,这些ID只是轮廓而已。我非常想保留颜色,因为它会使黑白背景更容易看到。

这是Canny Edge发生后我所拥有的帧的图片

Here is a picture of the frame that I have after Canny Edge has occurred 在左下角,您可以看到一些我想着色的文本,但是这些文本已经被边缘更改了。

是否可以与Canny Edge检测一起显示彩色文本?

1 个答案:

答案 0 :(得分:0)

我使用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