我正在关注本教程系列: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)
答案 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)