gpt4 book ai didi

python - 如何在 OpenCV 中将 numpy ndarray 作为颜色传递?

转载 作者:太空宇宙 更新时间:2023-11-03 13:14:17 25 4
gpt4 key购买 nike

我正在尝试将 ndarray 传递到此行:cv2.fillPoly(im, pts=[cnt],color=(centroid_color[0],centroid_color[1],centroid_color[2]))

centroid_color 看起来像这样:[ 0 255 0]类型为 <type 'numpy.ndarray'>

但是,我不断收到此错误:类型错误:参数“颜色”的标量值不是数字。

我该如何正确转换它?

编辑:我当前更新的代码仍然出现相同的错误:

im = cv2.imread('luffy.jpg')
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,0)

contours,h = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

for cnt in contours:
moment = cv2.moments(cnt)
c_y = moment['m10']/(moment['m00']+0.01)
c_x = moment['m01']/(moment['m00']+0.01)
centroid_color = im[c_x,c_y]
centroid_color = np.array((centroid_color[0],centroid_color[1],centroid_color[2]))
r = lambda: random.randint(0,255)
print type(centroid_color)
cv2.fillPoly(im,cnt,centroid_color)

最佳答案

对我来说唯一有用的是:

self.points = np.int32(np.vstack([
np.random.uniform(0, bounds[1], 3),
np.random.uniform(0, bounds[0], 3)
]).T)
color = np.uint8(np.random.uniform(0, 255, 3))

c = tuple(map(int, color))
cv2.fillPoly(img, [self.points], color=c)

关于python - 如何在 OpenCV 中将 numpy ndarray 作为颜色传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34932288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com