OpenCV(4.1.0)错误:(-215:断言失败)

时间:2019-07-25 20:17:39

标签: python-3.x tensorflow

我正在关注本教程系列:https://www.youtube.com/watch?v=A4K6D_gx2Iw&list=PLQVvvaa0QuDfhTox0AjmQ6tvTgMBZBEXN&index=6

当我尝试通过预测在程序外部使用模型时,出现以下错误: 错误:OpenCV(4.1.0)/Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/resize.cpp:3718:错误:(-215:断言失败)!ssize.empty()在功能“调整大小”中

在加载模型时的代码下方:

import cv2
import tensorflow as tf

CATEGORIES = ["Dog", "Cat"]
    import cv2
import tensorflow as tf

CATEGORIES = ["Dog", "Cat"]

def prepare(filepath):
    IMG_SIZE = 50
    img_array = cv2.imread(filepath, cv2.IMREAD_GRAYSCALE)
    #return img_array.reshape(-1, IMG_SIZE, IMG_SIZE, 1)

    new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))
    return new_array.reshape(-1, IMG_SIZE, IMG_SIZE, 1)
#
model = tf.keras.models.load_model('iyad')
#
predication = model.predict([prepare("Dog.jpg")])

print(predication)

4 个答案:

答案 0 :(得分:0)

它告诉您原始图像的大小为0,与您从img_array = cv2.imread(filepath, cv2.IMREAD_GRAYSCALE)进行读取的时间相对应。检查是否确实加载了图片Dog.jpg

答案 1 :(得分:0)

另外@stormzhou回答: 只需在您的脚本或ipython单元格中键入此命令,以验证是否存在可能导致此错误的空白图像或损坏图像即可。

import os
from PIL import Image

img_dir = r"/content/downloads/Cars"
for filename in os.listdir(img_dir):
    try :
        with Image.open(img_dir + "/" + filename) as im:
             print('ok')
    except :
        print(img_dir + "/" + filename)
        os.remove(img_dir + "/" + filename)

将img_dir替换为尝试调整图像大小的目录名称。希望对您有所帮助。

答案 2 :(得分:0)

这是路径错误。输入正确且完整的路径。

问题1:当您从IDE运行它时,IDE控制台的路径可能会有所不同,并且可能无法找到图像,因此请提供完整路径,即代替image.png来执行以下操作: EventReceiver

问题2:图片扩展名。检查图像是否为Eventhost* hostObj = new Eventhost(... EventReceiver* recvObj = new EventReceiver(... QObject::connect(hostObj, &Eventhost::SignalControl, recvObj, &EventReceiver::mousePressEvent); 或'.png'或其他。

问题3:您输入的图片名称不正确,或者图片在提供的位置根本不存在。

答案 3 :(得分:0)

    X=[]
count=0

path=TRAIN_PATH_X
for img in os.listdir(TRAIN_PATH_X):
    image=cv2.imread(os.path.join(path,img),cv2.IMREAD_GRAYSCALE)
    try:
        image = cv2.resize(image, (IMG_HEIGHT, IMG_WIDTH), interpolation=cv2.INTER_AREA)
        print(image.shape)
    except:
        break
    X.append([image])
    count = count +1
print(count)