将元组转换为numpy ndarray

时间:2015-02-06 11:25:15

标签: python arrays numpy raspberry-pi tuples

我正在使用覆盆子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的正确语法。

有人能指出我正确的方向吗?

1 个答案:

答案 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