|you can use any source of input as long as you are able to obtain each frame as an image.
In regards to you concern about dealing with different image formats then you could go for converting the images so each one is the same, that will of course add cost to processing but I think it will be very little compared to what you image processing algorithms are going to require.
If I needed to deal with multiple image formats then I would write a class that deals with that and you algorithm simply asks this class for the pixel data it wants to use.
For example I would have a class with the following functions...
public ImageFormat formatForImage;
public Pixel GetPixel(int xPos, int yPos)
if(formatForImage == type1)
else if(formatForImage == type2)
...Hope that helps explain my meaning. You can choose for this class to work in different ways, you could pass it each frame from the video or you could have it load the next frame itself with the use of a NextFrame function etc.
In my opinion it does not matter what format you work with as all your algorithms will need to be concerned with is the values of each pixel.
I think the best way is have a class like above that can load a bitmap from a given file, then have a function that returns the pixel you want to use.
Then when you need to make it do video you just add that functionailty to the class, then a pixel will always be returned the way your algorithms wants them to be.
Hope that makes sense
Life goes very fast. Tomorrow, today is already yesterday.