错误:OpenCV(4.1.0) 错误:(-215:Assertion failed) !ssize.empty() in function 'cv::resize'

pal*_*hra 7 python opencv tensorflow

这是我得到的错误:

错误:OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:3718: error: (-215:Assertion failed) !ssize.empty() in function 'cv ::调整大小'

已检查损坏的文件。

cat 是一个包含 1000 个图像 (RGB) 的数组。

我正在尝试将这些图像压缩为 (50,50) 灰度。

def greyscale_compress(img):
    new_img = cv2.resize(img, (50,50))
    img_gray = cv2.cvtColor(new_img, cv2.COLOR_BGR2GRAY)
    return img_gray

cat_bin = []
for i in range(0, 100):
    cat_bin.append(greyscale_compress(cat[i]))
Run Code Online (Sandbox Code Playgroud)

小智 7

通常这个问题是由于调整图像大小而发生的,我只是应用 try 和 catch 语句来调整图像大小,以便进行任何错误处理。它工作正常,没有出现与形状相关的错误。

 img=cv2.imread(filename)
    print(img)
        try:
           img = cv2.resize(img, (1400, 1000), interpolation=cv2.INTER_AREA)
            print(img.shape)
        except:
        break
    height, width , layers = img.shape
    size=(width,height)
    print(size)
Run Code Online (Sandbox Code Playgroud)

  • 如果您遇到此类错误,可能是因为您的边界框出现问题。在这种情况下,我建议您检查异常情况,而不是在“ except”子句中留下一个“break” (2认同)

Muh*_*jib 6

当我通过包含图像名称和路径的标签将图像导入列表时,我遇到了同样的问题。

我的问题是由于标签列表中的空白区域而出现的。

我通过从标签列表中删除空格解决了这个问题:

在此输入图像描述


Ami*_*pta 5

您代码中的Cat[i]正在做什么,

如果文件夹中有 1000 张图像,则必须列出图像目录 ( os.listdir) 并通过循环应用您的函数逐一读取它们。

除此之外,您的压缩功能是正确的并且工作正常,我建议先转换灰度然后应用调整大小,可能会产生更好的插值。