2015-02-06 5 views
-3

Я разрабатываю небольшой скрипт обработки изображений на питоне, который работает на малине PI. У меня проблема с типом переменной. У меня есть две функции. Первая функция, которая преобразует RGB изображения в двоичную, который работает:Преобразование кортежа в numpy ndarray

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.

Может ли кто-нибудь указать мне правильное направление?

+2

Вопросы должны быть размещены на английском языке, пожалуйста ... –

+0

@Ben: минус «пожалуйста», это на самом деле необходимо. Это неосуществимо. –

+0

@ MarcusMüller, не нужно быть невежливым. – cel

ответ

0

сам cv2.threshold Retuns кортеж, который вы можете правильно назначить следующим

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)

+0

Благодарим вас за ответ, но ссылка [http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.html] не является доступной. Перепроверите ссылку. –

+0

Правильная ссылка: http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.html Спасибо @wolfrevo. Когда вы используете img_bw = cv2.threshold (img_filtered, 127,255, cv2.THRESH_BINARY), python автоматически назначит тип tuple img_bw. И когда вы используете retval, img_bw = cv2.threshold (img_filtered, 127,255, cv2.THRESH_BINARY), retval - это тип с плавающей точкой, а img_bw - тип numpy.ndarray. Еще раз спасибо –

+0

Извините за опечатку. Я обновил ответ. Если это правильный ответ, пожалуйста, подумайте о том, чтобы отметить его как ответ. – wolfrevo

Смежные вопросы