我是一个openCV的初学者,正在尝试分析一个数独解算器的现有代码。这段代码抛出了一个错误。
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
有什么问题吗?
由于在最新版本中执行了一系列重构操作,因此发生错误。 Error fix
收到的错误消息:
字面意思是:您在一个地方提供了一个多个元素的数组,在这个地方需要一个单个值或单个元素的数组。
所以传递给调用
model.train(samples, responses)
的参数之一需要和标量。。。但是哪个呢?查看KNearest class的最新文档,让我们看到StatsModel.train method的签名:
显然,添加了一个新的参数。但是meaning在文档中有点模糊。
如果不知道你文件的内容,我无法判断你是否需要传递
ROW_SAMPLE
或COL_SAMPLE
,但是有了这些信息,我可以找到一个similar question,其解决方案是将cv2.ml.ROW_SAMPLE
添加为train方法的第二个参数:相关问题 更多 >
编程相关推荐