How to prepare colored images for neural networks?

I have seen many examples online regarding the MNIST dataset, but it's all in black and white. In that case, a 2D array can be constructed where the values at each array element represent the intensity of the corresponding pixel. However, what if I want to do colored images? What's the best way to represent the RGB data?

There's a very brief discussion of it here, which I quote below. However, I still don't get how the RGB data should be organized. Additionally, is there some OpenCV library/command we should use to preprocess the colored images?

the feature detectors in the second convolutional-pooling layer have access to all the features from the previous layer, but only within their particular local receptive field*

*This issue would have arisen in the first layer if the input images were in color. In that case we'd have 3 input features for each pixel, corresponding to red, green and blue channels in the input image. So we'd allow the feature detectors to have access to all color information, but only within a given local receptive field.

• Please do not cross-post :) – Dawny33 Jan 4 '16 at 11:59
• Sorry about that. What's the difference between the two? I will delete this one. – FullStack Jan 5 '16 at 10:23

So (if you follow pylearn conventions) your input will have shape (n_samples, 3, size_y, size_x). Since images are usually stored colour-channel last (n_images, size_y, size_x, 3), in python you usually reformat your image collection with feature_maps = np.rollaxis(image_collection, 3, 1)