繁体   English   中英

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

[英]error: OpenCV(4.1.0) error: (-215:Assertion failed) !ssize.empty() in function 'cv::resize'

这是我得到的错误:

错误:OpenCV(4.1.0) C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:3718: 错误: (-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]))

通常这个问题是由于调整图像大小而发生的,我只是应用 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)

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

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

我通过从标签列表中删除空格来解决此问题:

在此处输入图像描述

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

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

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

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)

那是因为open cv在给定目录中找不到任何图像

检查您可能错过/的路径并为安全起见尝试

images = [img for img in os.listdir(image_path) if img.endswith(".jpg")]

或者

images = [img for img in os.listdir(image_path) if img.endswith("anyformat")]

请确保您的img变量不等于None

这是无法从相机或电影文件接收到的错误。 确保视频文件名与代码相同,并且在同一目录中。

它的发生有以下两个原因:

  1. 您用于读取图像的图像路径不存在。

解决方案:重新检查图像路径,尤其是反斜杠和点。

  1. 您尝试读取的图像是 NoneType 损坏的图像。

解决方案:重新下载图像或将其删除。

该问题的解决方法是纠正文件并删除我拥有的0 0 0 0边界框。

在此处输入图像描述

有突出显示的行的地方,有一个框0 0 0 0 我将该行从positive/person_0004.jpg 2 0 0 0 0 63 30 148 185修改为positive/person_0004.jpg 1 63 30 148 185

请注意,我还更改了盒子的数量。 2 -> 1。

我遇到了同样的问题,但我解决了。 我有这条路:

/content/drive/MyDrive/skincancer/data/train/benign

我通过在路径末尾添加/解决了这个问题,如下所示:

/content/drive/MyDrive/skincancer/data/train/benign/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM