So I'm having a brainfart at the moment... but here's the synopsis.
In the image below, you'll notice I've circled (in purple) some bits of small color. This image is created using layered perlin noise. This is not done in real-time, and so is not heavily performance reliant... Accuracy is more important. I'm happy with the outcome with the exception of the small bits that I've circled. So I now need an algorithm to either; 1.) Process the image to see if these "errors" exist, and if so produce a new image. or 2.) Process the image and blend the small errors with their larger counterpart (eg. a tiny spec of brown in a big orange section will blend to orange).
I should add, they're errors because the region of color is too small. So the algorithm's primary function would be to detect the size of the colored region.
EDIT: Solutions can be in any common language (C, C++, C#, JAVA, or even psuedocode), I can work it from there.