我正在尝试重塑图像,然后再发送模型以使用Tensorflow(v-2.0),Opencv(v-'3.4.2')和python(v-3.6)来预测图像的哪个位数,但出现错误“ TypeError:/:“ NoneType”和“ float””不受支持的操作数类型。
path=cv2.imread('/home/farhana/Desktop/image processing/code/7.jpg')
img = cv2.imread(path,cv2.IMREAD_GRAYSCALE)
res=img
res = res / 255.0
res = res.resize(28,28)
res = res.reshape((len(img), 28, 28,1))
res = res.reshape(28,28,1)
答案 0 :(得分:0)
确保path
是所需输入文件的有效路径。您可以检查例如与
import os
path = '/home/farhana/Desktop/image processing/code/7.jpg'
os.path.isfile(path)
# --> should give you
True
然后使用
import cv2
import numpy as np
img = cv2.imread(path, cv2.IMREAD_GRAYSCALE).astype(np.float64)/255
resized_img = cv2.resize(img, (28, 28)).reshape(28, 28, 1)
答案 1 :(得分:0)
问题在于以下三行:
path=cv2.imread('/home/farhana/Desktop/image processing/code/7.jpg')
img = cv2.imread(path,cv2.IMREAD_GRAYSCALE)
res=img
在第一行中,您读取了一个图像文件,并将图像对象存储在(重命名)变量path
中。
在第二行中,将图像对象从第一次调用传递到imread
,作为到另一个调用imread
的路径。由于图像对象实际上不是路径,因此第二次调用将失败并返回None
。
然后,最后一行使res
引用第二次调用None
返回的imread
对象,由于它是None
,因此不能用于任何操作。
似乎不应该第二次调用imread
。