web-dev-qa-db-fra.com

erreur: (-215) ssize.width> && ssize.height> dans la fonction redimensionner

Je suis en train de construire un classifieur de traitement d'image pour tout le code, sauf cette ligne -

input_img_resize=cv2.resize(input_img,(128,128))

Cette ligne me donne une erreur

('error: /io/opencv/modules/imgproc/src/imgwarp.cpp:3483: error: (-215) ssize.width > 0 && ssize.height > 0 in function resize')

Mon code -

PATH = os.getcwd()
# Define data path
data_path = PATH + '/data'
data_dir_list = os.listdir(data_path)

img_rows=128
img_cols=128
num_channel=3
num_Epoch=30

num_classes = 67

img_data_list=[]

for dataset in data_dir_list:
    img_list=os.listdir(data_path+'/'+ dataset)
    print ('Loaded the images of dataset-'+'{}\n'.format(dataset))
    for img in img_list:
        input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img )

        input_img_resize=cv2.resize(input_img,(128,128))
        img_data_list.append(input_img_resize)
4
Deepak Umredkar

Bien évidemment, cette ligne input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img ) Renvoie un tableau vide.

Vous devriez vérifier si l'image existe avant de lire. Et s'il vous plaît, arrêtez d'utiliser la combinaison de chaînes pour joindre le chemin du fichier, utilisez python.

image_path = os.path.join(data_path, dataset, img)
if os.path.exist():
    # Do stuff
9
Vu Gia Truong

C'est à cause d'une image. 

Pour trouver l'image, j'ai ajouté une ligne de code qui affiche le nom de l'image avant qu'elle entre le cv2.resize et une autre ligne qui imprime le nom après son redimensionnement. Il s’arrêtera automatiquement à l’image avec faute. 

2
T.Antoni

j'ai eu ce problème lorsque j'ai essayé de charger des images dans un dossier appelé «Maçã», assurez-vous que le chemin d'accès à l'image ne contient que des caractères alphanumériques

En effet, la région de l'image n'est pas correctement identifiée. Voici une façon d'essayer:

gray = cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
r = cv2.selectROI(gray)
cv2.selectROI()

Cela vous permettra de sélectionner manuellement la région de l'image dans chaque image si elle n'est pas détectée.

0
anonymous

J'ai le même problème mais il est résolu en donnant le chemin correct

0
gokul

Vous faites face à ce problème parce que l'image n'a peut-être pas été lue correctement lors de la numérisation. Donc, assurez-vous que l'image est chargée. 

if input_img is not None:
            img = cv2.resize(input_img, (IMG_SIZE,IMG_SIZE))
            training_data.append([np.array(img), np.array(label)])
        else:
            print("image not loaded")


Cela ignore l'image en cours et continue ensuite la numérisation. Ceci se décompose en deux segments résultats comme suit:  enter image description here
J'espère que cela t'aides :) 

0
Ashwin Dhakal