I am building image processing classifier the whole code in right except this line -
input_img_resize=cv2.resize(input_img,(128,128))
This line givin me an 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)
You are facing this problem because the image might not have been read properly while scanning. So do make sure tat image is loaded.
This skips the current image and then continue the scan. This breaks into two segments results as follows:
Hope this helps :)
Make sure the input_img's resolution is not zero, i.e, (0,0,number_of_channels) which means it is not finding any image. So add the following checking before performing operations on it:
Well, obviously this line
input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img )
return a empty array.You should check whether image is exist first before reading. And please stop using string combination to join file path, use python os.path.join is better choice.
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.If you are working with several images (for example, 1000 images), it may be difficult for you to identify which image is giving you problems. It may also be that, there are several others that are corrupt. In such a case, the code below can be useful.
where
filenames
is a list which contains names of the images.This is because the region of image is not properly identified. Here's one way you can try:
This will let you to manually select the region of image in each pic if its not detected.