错误:OpenCV(4.1.0)错误:(-215:断言失败)函数'cv :: resize'中的!ssize.empty()

时间:2019-07-30 06:00:09

标签: python tensorflow

这是我得到的错误。

  

错误:OpenCV(4.1.0)C:\ projects \ opencv-python \ opencv \ modules \ imgproc \ src \ resize.cpp:3718:错误:(-215:断言失败)!ssize.empty()在函数'cv :: resize'

已经检查了损坏的文件。

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]))

7 个答案:

答案 0 :(得分:1)

您代码中的

Cat [i] 正在做什么,

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

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

答案 1 :(得分:1)

通常,此问题是由于调整图像大小而引起的,我只是应用try and 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)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

当我通过包含图像名称和路径的标签将图像导入列表时,我遇到了同样的问题。 由于标签列表中的空白,出现了我的问题。 因此,我只是通过从标签列表中删除空格来解决此问题。 希望也能解决您的问题。 enter image description here

答案 4 :(得分:0)

发生这种情况有以下两个原因:

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

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

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

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

答案 5 :(得分:0)

那是因为 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")]

答案 6 :(得分:-1)

    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)