首页 > 解决方案 > cv2.inrange() 用于多种颜色检测(要检测63种不同颜色的情况)

问题描述

我列出了要检测的 63 色像素。这个想法是制作 63 个面具并将它们组合在一起。为此,我在列表中使用了 for 循环,但问题是我在运行程序时收到此错误。

ValueError:操作数无法与形状一起广播 (651,1366) (0,)

这是代码:

import numpy as np
import cv2
listofpixel = [(156,140,140), (221,16,30), (134,124,159), (170,134,140), (86,96,85), (83,46,53), (192,180,213), (116, 52,33),(168,156,181), (142,119,123),(132,75,61), (63,36,43),(53,63,56), (85,82,112),(21,13,11), (116,100,148),(68,68,100), (108,108,148),(117,44,61), (47,24,27),(236,44,76), (56, 44, 73),(83, 36, 28), (172, 156, 196),(110, 100, 126), (193, 100, 94), (252, 80, 124), (11, 18, 22), (83, 79,73), (120, 82, 92), (36, 36, 52), (40, 45, 51), (124, 64, 84), (156, 156, 172),(76, 60, 100), (44, 53, 69),(98, 95, 132), (36, 33, 39),(26, 20, 20), (188, 68, 116),(66,77, 72), (28, 26, 32),(20, 25, 31), (76, 16, 36),(100, 108, 136), (27, 36, 39),(148, 116, 88), (32, 12, 20),(52, 48, 55), (130, 100, 100),(28, 44, 36), (156, 92, 104),(28, 28, 44), (28, 44, 44), (36, 20, 30), (160, 180, 72)]
empty_array = np.array([])
for i in listofpixel:
    mask = cv2.inRange(img, np.array(i), np.array(i))
    empty_array = mask+empty_array

标签: pythonarrayscv2

解决方案


推荐阅读