web-dev-qa-db-de.com

fehler: (-215) ssize.width> && ssize.height> in function resize

Ich baue Bildverarbeitungsklassifizierer den gesamten Code in der rechten bis auf diese Zeile -

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

Diese Zeile gibt mir einen Fehler

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

Mein 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

Natürlich gibt diese Zeile input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img )_ ein leeres Array zurück.

Sie sollten vor dem Lesen prüfen, ob ein Bild vorhanden ist. Bitte beenden Sie die Verwendung der Zeichenfolgenkombination, um den Dateipfad zu verbinden.

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

Es ist wegen eines Bildes. 

Um das Bild zu finden, fügte ich eine Codezeile hinzu, die den Namen des Bildes druckt, bevor der cv2.resize eingegeben wird, und eine weitere Zeile, in der der Name nach der Größenänderung gedruckt wird. Es wird automatisch bei fehlerhaftem Bild angehalten. 

2
T.Antoni

ich hatte dieses Problem, als ich versuchte, Bilder in einen Ordner namens 'Maçã' zu laden. Stellen Sie sicher, dass der Pfad zum Bild nur alphanumerische Zeichen enthält

Dies liegt daran, dass der Bildbereich nicht richtig erkannt wird. Hier ist eine Möglichkeit, wie Sie versuchen können:

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

Auf diese Weise können Sie den Bildbereich in jedem Bild manuell auswählen, wenn er nicht erkannt wird.

0
anonymous

Ich habe das gleiche Problem, aber es wird gelöst, indem der richtige Pfad angegeben wird

0
gokul

Dieses Problem tritt auf, weil das Bild beim Scannen möglicherweise nicht richtig gelesen wurde. Stellen Sie also sicher, dass das Bild geladen ist. 

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


Dadurch wird das aktuelle Bild übersprungen und der Scan fortgesetzt. Dies teilt sich in zwei Segmente wie folgt auf:  enter image description here
Hoffe das hilft :) 

0
Ashwin Dhakal