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

7
我正在跟随这个教程系列:https://www.youtube.com/watch?v=A4K6D_gx2Iw&list=PLQVvvaa0QuDfhTox0AjmQ6tvTgMBZBEXN&index=6
当我尝试在程序外部使用模型进行预测时,出现以下错误: error: OpenCV(4.1.0) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/resize.cpp:3718: error: (-215:Assertion failed) !ssize.empty() in function 'resize'
下面是加载模型的代码:
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)

我忘了提到我正在使用macOS。 - Iyad Alsulaiman
图片未加载。请检查文件夹中是否有“Dog.jpg”。另外,请注意“Dog.jpeg”与“Dog.jpg”不同。 - Masoud
5个回答

4
它告诉你原始图像的大小为0,对应于从img_array = cv2.imread(filepath, cv2.IMREAD_GRAYSCALE)读取时。检查一下是否已经加载了那张名为Dog.jpg的图片。

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)

0

错误215断言失败通常发生在图像加载不正确时,请检查图像路径


2
你的回答可以通过提供更多的支持性信息而得到改进。请编辑以添加更多细节,例如引用或文档,以便他人可以确认您的答案是正确的。您可以在帮助中心中找到有关如何撰写好答案的更多信息。 - Community

0

这是路径错误。请提供正确和完整的路径。

问题1:当您从 IDE 运行程序时,IDE 控制台的路径可能不同,可能无法定位图像,请提供完整路径,例如: _image = cv2.imread(r'C:/Desktop/pc_name/Desktop/images/cat.png'),而不是只写 image.png。

问题2:图像扩展名有误。请检查图像是否为 .jpg 或 '.png' 或其他格式。

问题3:您输入了错误的图像名称或图像不存在于所提供的位置。


我使用glob.glob加载图像,但只有在使用轨迹条时才会出现此错误。 - Simon Chemnitz-Thomsen

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 替换为您尝试调整图像的目录名称。希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接