Ошибка типа: только массивы длиной-1 могут быть преобразованы в сканирование Python

Я начинаю openCV и пытаюсь проанализировать существующий код для решения sudoku. Существует этот раздел кода, который вызывает ошибку.

samples = np.float32(np.loadtxt('feature_vector_pixels.data')) responses = np.float32(np.loadtxt('samples_pixels.data')) model = cv2.ml.KNearest_create() model.train(samples, responses) 

Ошибка следующая Type Error: Only length-1 arrays can be converted to Python Scalars .

Полная трассировка следующая:

 C:\Study stuff\FinalProject>c:\Python27\python.exe Sudoku.py Traceback (most recent call last): File "Sudoku.py", line 15, in <module> model.train(samples, responses) TypeError: only length-1 arrays can be converted to Python scalars 

Любая идея о том, в чем проблема?

One Solution collect form web for “Ошибка типа: только массивы длиной-1 могут быть преобразованы в сканирование Python”

Сообщение об ошибке, которое вы получаете:

 TypeError: Only length-1 arrays can be converted to Python Scalars 

буквально означает: вы предоставили массив из более чем одного элемента в месте, где ожидалось одно значение или массив из одного элемента .

Поэтому один из аргументов, переданных для вызова model.train(samples, responses) требует и скалярного … но что?

Взгляните на последнюю документацию класса KNearest , чтобы увидеть подпись метода StatsModel.train :

virtual bool cv :: ml :: StatModel :: train (образцы InputArray, макет int, ответы InputArray)

По-видимому, был добавлен новый аргумент layout . Но это значит, что это немного неясно из документации.

Без знания содержимого вашего файла я не могу сказать, нужно ли вам передавать ROW_SAMPLE или COL_SAMPLE , но вооруженный этой информацией, я мог бы найти аналогичный вопрос , решение которого заключалось в том, чтобы добавить cv2.ml.ROW_SAMPLE качестве второго аргумента в метод поезда:

 model.train(samples, cv2.ml.ROW_SAMPLE, responses) 
  • OpenCV не поставляется с «внешними» библиотеками
  • Ошибка OpenCV: (-215) size.width> 0 && size.height> 0 в функции imshow
  • Использование OpenCL ускоренных функций с OpenCV3 в Python
  • Запрошенные модули недоступны: vtkRenderingOpenGL-cmake / OpenCVDetectVTK.cmake: 6 (find_package)
  • Обрезание живой видеопотока в OpenCV
  • openCV 3.0 python LineIterator
  • TypeError: Требуемый аргумент 'outImg' (поз. 6) не найден
  • Как оптимизировать эту итерацию изображения в numpy?
  • Нарисовать самую длинную линию в контурах OPENCV
  • Python - лучший язык программирования в мире.