请原谅我这个问题,我对OpenCV还是陌生的。我在人员计数程序上使用canny边缘检测,每当一个人走进框架时,都会在该人的中心放置一个ID点。在应用代码生成Canny边缘之前,我将ID显示为绿色,但是对于Canny边缘,我看不到任何颜色。相反,这些ID只是轮廓而已。我非常想保留颜色,因为它会使黑白背景更容易看到。
这是Canny Edge发生后我所拥有的帧的图片
在左下角,您可以看到一些我想着色的文本,但是这些文本已经被边缘更改了。
是否可以与Canny Edge检测一起显示彩色文本?
答案 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)