Open CV ValueError:新数组的总大小必须保持不变

时间:2016-11-15 16:43:22

标签: python opencv numpy tensorflow

我是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:新数组的总大小必须保持不变)。有没有办法来解决这个问题?我无法理解如何修复它。

0 个答案:

没有答案