Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I am building an image processing classifier. This line is giving me an error:

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

The error:

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

My 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)
like image 935
Dexter Avatar asked Nov 08 '17 06:11

Dexter


2 Answers

Well, obviously this line input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img ) returns an empty array.

You should check whether the image exists first before reading. And it is better not to use string combination to join file paths, use python os.path.join instead.

image_path = os.path.join(data_path, dataset, img)
if os.path.exist():
    # Do stuff
like image 137
Vu Gia Truong Avatar answered Nov 14 '22 01:11

Vu Gia Truong


It is because of one image.

To find the image I added a line of code that prints the name of the image before it enters the cv2.resize and another line that prints the name after it is resized. It will automatically stop at the image with fault.

like image 21
T.Antoni Avatar answered Nov 14 '22 00:11

T.Antoni