学习《opencv3计算机视觉:python语言实现》page164代码
win8 + winpython3.6.3 + opencv3.4.0
import cv2
import numpy as np
ann = cv2.ml.ANN_MLP_create()
ann.setLayerSizes(np.array([9, 5, 9], dtype = np.uint8))
ann.setTrainMethod(cv2.ml.ANN_MLP_BACKPROP)
ann.train(np.array([[1.2, 1.3, 1.9, 2.2, 2.3, 2.9, 3.0, 3.2, 3.3]],
dtype = np.float32),
cv2.ml.ROW_SAMPLE,
np.array([[0, 0, 0, 0, 0, 1, 0, 0, 0]], dtype = float32))
print(ann.predict(np.array([[1.4, 1.5, 1.2, 2., 2.5, 2.8, 3., 3.1, 3.8]],
dtype = np.float32)))弹出错误
Traceback (most recent call last):
File "C:/WinPython/notebooks/ann_sample01.py", line 11, in <module>
np.array([[0, 0, 0, 0, 0, 1, 0, 0, 0]], dtype = float32))
NameError: name 'float32' is not defined
经查,在使用float32前从numpy导入,原因待细查,修改代码如下
import cv2
import numpy as np
from numpy import float32
ann = cv2.ml.ANN_MLP_create()
ann.setLayerSizes(np.array([9, 5, 9], dtype = np.uint8))
ann.setTrainMethod(cv2.ml.ANN_MLP_BACKPROP)
ann.train(np.array([[1.2, 1.3, 1.9, 2.2, 2.3, 2.9, 3.0, 3.2, 3.3]],
dtype = np.float32),
cv2.ml.ROW_SAMPLE,
np.array([[0, 0, 0, 0, 0, 1, 0, 0, 0]], dtype = float32))
print(ann.predict(np.array([[1.4, 1.5, 1.2, 2., 2.5, 2.8, 3., 3.1, 3.8]],
dtype = np.float32)))程序通过
在尝试运行《opencv3计算机视觉:python语言实现》第164页的代码时,遇到了NameError,指出'float32'未定义。该问题出现在Windows 8环境下,使用了WinPython 3.6.3和OpenCV 3.4.0。解决方案是在使用float32之前正确导入numpy库。修复后的代码能够正常执行。
5956

被折叠的 条评论
为什么被折叠?



