我正在关注本教程系列: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,对应于你从
img_array = cv2.imread(filepath, cv2.IMREAD_GRAYSCALE)
读取时的大小。检查您是否已加载该图片Dog.jpg
。
另外@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 替换为您尝试调整图像大小的目录名称。希望对您有帮助。
这是路径错误。输入正确且完整的路径。
问题 1:当您从 IDE 运行它时,IDE 控制台的路径可能会有所不同,并且可能无法找到图像,因此请提供完整路径,即而不是 image.png,执行以下操作:
_image = cv2.imread(r'C:/Desktop/pc_name/Desktop/images/cat.png')
问题2:图像扩展。检查图像是否为
.jpg
或“.png”或其他。
问题 3:您输入了错误的图像名称,或者该图像根本不存在于提供的位置。
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)
错误215断言失败通常发生在图像未正确加载时,因此请检查图像的路径
我已经解决了问题。
将 numpy 导入为 np
将 matplotlib.pyplot 导入为 plt
导入CV2
图像 = cv2.imread(r"D: itesh\Dinesh.jpg")
图像 = cv2.cvtColor(图像, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(20, 20))
plt.子图(1,2,1)
plt.title(“原文”)
plt.imshow(图像)
kernel_sharpening = np.array([[-1,-1,-1],
[-1,9,-1],
[-1,-1,-1]])
锐化= cv2.filter2D(图像,-1,kernel_sharpening)
plt.子图(1,2,2) plt.title("图像锐化") plt.imshow(锐化)
plt.show()