我正在使用覆盆子PI运行python中的图像处理中开发一个小脚本。我有关于变量类型的问题。我有两个功能。第一个是将RGB图像转换为二进制的函数,它可以工作:
img_bw = cv2.threshold(img_filtered,127,255,cv2.THRESH_BINARY)
第二个功能允许我清理小于300px的像素
img_morph = morphology.binary_opening(img_bw,ones((9,5)),iterations=2)
我尝试执行时的结果:
*input = numpy.asarray(input)
File "/usr/lib/pymodules/python2.7/numpy/core/numeric.py", line 235, in
asarray return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.*
根据论坛的一些研究,我理解问题是关于变量的类型。 img_bw
的类型是tuple
类型,第二个函数需要类型ndarray
的变量。我没有找到允许我将tuple
转换为ndarray
的正确语法。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
cv2.threshold
本身会返回一个元组,您可以正确分配如下
retval, img_bw = cv2.threshold(img_filtered,127,255,cv2.THRESH_BINARY)
您的原始代码img_bw = cv2.threshold(img_filtered,127,255,cv2.THRESH_BINARY)
会将元组分配给img_bw
。
请参阅文档(http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.html)