是否可以在 Canny Edge 框架上显示彩色文本?
Is it possible to display colored text on a Canny Edge frame?
请原谅我的问题,我是OpenCV的新手。我在人数统计程序上使用精明的边缘检测,每次有人走进框架时,都会在该人的中心放置一个 ID 点。在我应用代码生成 canny 边缘之前,我将 ID 显示为绿色,但是,对于 canny 边缘我看不到任何颜色。相反,ID 只是轮廓,仅此而已。我非常想保留颜色,因为这样在黑白背景下更容易看清。
这是我在出现 Canny Edge 后的画面
在左下角,您可以看到一些我想要着色的文本,但已被边缘更改。
是否可以结合 Canny 边缘检测显示彩色文本?
我使用 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)
请原谅我的问题,我是OpenCV的新手。我在人数统计程序上使用精明的边缘检测,每次有人走进框架时,都会在该人的中心放置一个 ID 点。在我应用代码生成 canny 边缘之前,我将 ID 显示为绿色,但是,对于 canny 边缘我看不到任何颜色。相反,ID 只是轮廓,仅此而已。我非常想保留颜色,因为这样在黑白背景下更容易看清。
这是我在出现 Canny Edge 后的画面
是否可以结合 Canny 边缘检测显示彩色文本?
我使用 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)