How can I use images which have different size for CNN?

16 次查看(过去 30 天)
Hello everyone,
I have prepared a neural network and I need to test it now but my dataset has images that have different sizes. How can I use all of them even they have different size?

采纳的回答

Abolfazl Chaman Motlagh
except some special cases, there is a limitation for forwarding different size arrays toward a CNN. after images pass the convolutional layers each one lead to an array with different size. and because of fully connected layers at end of network it is not possible to work with different size array. ( they should work with input with certain size)
so you should convert them to certain size for this network. and there is a fast method to do so:
input_size = Net.Layers(1).InputSize;
images_folder_path = 'E:\images'; % the folder contain all images
image_database = imageDatastore(images_folder_path);
image_database = transform(image_database,,@(x) (imresize(x,input_size(1:2))));
after this, you can pass this datastore to network all in once. for example with classification:
Output = classify(Net,image_database);
if not, select one by one and pass it through the network:
I = image_database.read;
y = classify(Net,I);

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by