I am currently seeing the API of theano,
theano.tensor.nnet.conv2d(input, filters, input_shape=None, filter_shape=None, border_mode=\'valid\', subsample=(1, 1),
There is no correct answer as to what the best number of filters is. This strongly depends on the type and complexity of your (image) data. A suitable number of features is learnd from experience after working with similar types of datasets repeatedly over time. In general, the more features you want to capture (and are potentially available) in an image the higher the number of filters required in a CNN.