我是OpenCV和TensorFlow的新手。我正在尝试获取实时摄像头预览并使用TensorFlow预测的实时摄像头输入。以下是实时预览和预测的代码部分:
image = np.zeros((64, 64, 3))
softmax_pred = tf.nn.softmax(conv_net(x, weights, biases, image_size, 1.0))
cam = cv2.VideoCapture(0)
while True:
ret_val, img = cam.read()
img = cv2.flip(img,1)
cv2.imshow('my webcam',img)
img = img.resize((64,64))
image = array(img).reshape(1,64,64,3)
image.astype(float)
result = sess.run(softmax_pred, feed_dict={x: image})
我不确定这里有什么问题。我收到了这个错误:
image = array(img).reshape(1,64,64,3)
ValueError: total size of new array must be unchanged
我的Tensor占位符图片的形状为Tensor'(?,64,64,3)'。我通过从磁盘手动加载图像并将图像重新整形为(1,64,643)来为jpeg图像做同样的事情并且它工作正常。这是用于手动加载图像然后预测的代码:
img = Image.open('/home/pragyan/Documents/miniProject/PredictImages/IMG_4804.JPG')
img = img.resize((64, 64))
image = array(img).reshape(1,64,64,3)
image.astype(float)
result = sess.run(softmax_pred, feed_dict={x: image})
上面的代码可以工作,但是当从网络摄像头重塑实时帧时,会给我这个错误(ValueError:新数组的总大小必须保持不变)。有没有办法来解决这个问题?我无法理解如何修复它。