使用numpy随机生成的cv2.circle()中的color参数


问题描述:

在使用numpy.random.randint()方法,生成cv2.circle()中的color参数时,直接使用会报出如下错误

color = tuple(np.random.randint(0, high=256, size=(3,)))
cv2.circle(canvas, pt, radius, color)
TypeError: Scalar value for argument 'color' is not numeric

原因分析:

经过对randint生成数据的type类型检查,发现该情形下默认生成类型为numpy.int32,需要对生成数据进行类型转换。

color = tuple(np.random.randint(0, high=256, size=(3,)))
print(type(color[0]))
<class 'numpy.int32'>

解决方案:

对数据进行类型转换:

color = tuple(map(int,np.random.randint(0, high=256, size=(3,))))
cv2.circle(canvas, pt, radius, color)

修改后程序正常运行

你可能感兴趣的:(python图像处理入门学习,python,opencv,numpy)