python - OpenCV:src 不是数字元组

标签 python opencv numerical

我用 python 编写了一个关于颜色检测的程序。但是“Erode”这句话总是有错误。这是我的程序的一部分。谢谢。

# Convert the image to a Numpy array since most cv2 functions
# require Numpy arrays.
frame = np.array(frame, dtype=np.uint8)

threshold = 0.05
#blur the image
frame=cv2.blur(frame, (5,5))
#Convert from BGR to HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
#split into 3
h, s, v= cv2.split(hsv)
#red color
s = cv2.threshold(h, 15, 1, cv2.THRESH_BINARY_INV)#1-15,x>15 y=0
h = cv2.threshold(h, 245, 1, cv2.THRESH_BINARY)#245-255 x>245 y=1
h = h + s
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3)) 
h = cv2.erode(h, kernel)
v = cv2.sumElems(h)

最佳答案

尝试:

_,h = cv2.threshold(h, 245, 1, cv2.THRESH_BINARY) #245-255 x>245 y=1
_,s = cv2.threshold(h, 15, 1, cv2.THRESH_BINARY_INV) #1-15,x>15 y=0

cv2.threshold 返回两个值: http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#cv2.threshold

cv2.threshold(src, thresh, maxval, type[, dst]) → retval, dst

您错过了第二个值 dst,在表达式中省略了它,您只会得到 retval 值,它不是图像。

关于python - OpenCV:src 不是数字元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25137163/

相关文章:

python - 加速一个计算巨大数组中邻居平均值的程序

c++ - 检查算法中的数值精度

python - pydantic从dict生成模型

c++ - 检查灰度图像中的像素是否为黑色 (OpenCV)

c++ - 使蒙版外全部透明

OPENCV SURF 特征描述符强度

javascript - 输出中出现未定义/NaN 错误

python - 在 C++ 中嵌入 python : Assigning C++ and python variables

javascript - 将逗号添加到 JSON 对象列表

python - RQ : redis. 异常。ResponseError : Command # 3 . ..管道导致错误:当使用的内存 > 'maxmemory' 时不允许 OOM 命令