Say you have a bunch of simple images that are basically just 25 pixel blocks. Each of these images has a corresponding set of class labels (for the whole block) but you really just want to know what class each individual pixel is. For instance, using the two blocks below:
Perhaps you know up-front the left block is 32% gravel (8/25), 32% bare earth, and 36% vegetation (9/25). You also know that the right block is 60% gravel (15/25) and 40% bare earth (10/25). Therefore, like an algebra problem, you could deduce that the dark gray is gravel, the light gray is vegetation, and the white is bare earth.
I need to do this for real images (RGB + near infrared) that are a bit more complex; but luckily I have a lot of blocks, so I think the classes (n=5) should be separable. However, I have no clue what method/technique this is - does anyone have an idea?
Edit: the motivation for this work is that (in real life) the blocks are my ground truth points (vegetation sampling quadrats) for a larger image that I want to classify. The original approach I thought of was resampling the images to the size of my blocks and then training an artificial neural network off the mixed pixels (after Foody (1996)). But I would like to avoid this if it's at all possible to derive more information by classifying at the level of the original pixels first.