python - 如何在 OpenCV/python 上更改轮廓颜色

标签 python opencv

我试图在此图像上绘制具有不同颜色的轮廓( https://docs.opencv.org/3.4.0/d4/d73/tutorial_py_contours_begin.html ),但轮廓始终是白色的。下面是代码

import cv2
import numpy as np

img = cv2.imread(r'C:\Users\Ron Shporer\Desktop\TESTSAVES\TESTLines.png',0)

ret,thresh = cv2.threshold(img,127,255,0)
im2,contours,hierarchy = cv2.findContours(thresh, 1, 2)
cnt = contours[0]
cv2.drawContours(img, contours, -1, (255,0,0), 5)

cv2.namedWindow('img', cv2.WINDOW_NORMAL)
cv2.imshow('img',img)


cv2.waitKey(0)
cv2.destroyAllWindows()`

如下图:

contours

最佳答案

解决办法很简单。您可以将输入图像转换为 3 channel 图像,然后在转换后的彩色图像上绘制轮廓。

代码如下:

import cv2
import numpy as np

img = cv2.imread(r'C:\Users\Ron Shporer\Desktop\TESTSAVES\TESTLines.png',0)

ret,thresh = cv2.threshold(img,127,255,0)
im2,contours,hierarchy = cv2.findContours(thresh, 1, 2)
cnt = contours[0]

result_img = cv2.cvtColor(frame, cv2.COLOR_GRAY2RGB)

cv2.drawContours(result_img, contours, -1, (255,0,0), 5)

cv2.namedWindow('img', cv2.WINDOW_NORMAL)
cv2.imshow('img', result_img)

cv2.waitKey(0)
cv2.destroyAllWindows()

关于python - 如何在 OpenCV/python 上更改轮廓颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51560541/

相关文章:

python - 按行设置列的 pandas 条件,Python 2.7

python - Pandas:应用函数:TypeError:不支持的操作数类型 -: 'unicode' 和 'unicode'

python - openCV 相当于 PIL resize ANTIALIAS?

opencv - 如何处理对象检测的遮挡、扭曲或透视变形?

python - 如何检查是否使用检查设置了 python 函数参数的默认值?

python - Peewee/SQLite 查询 7 天滚动平均值

python - 生产中的 Django 的 POST 请求在计算引擎上抛出服务器错误(500)

python - 我如何使用opencv实现居中剪切图像

c++ - 基于 calcOpticalFlowFarneback 的 OpenCV 变形图像

python直方图opencv计算每种颜色