Я тестировал с использованием 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)