将元组转换为 numpy ndarray

Convert tuple to numpy ndarray

我正在 python 运行 raspberry PI 中开发图像处理小脚本。我对变量类型有疑问。我有两个功能。第一个是将 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.

的正确语法

谁能给我指出正确的方向?

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)