Find smallest enclosing circle
Yes, there are efficient algorithms for this problem, using standard data structures for storing two-dimensional data.

Here is a simple approach.  Store all of the colored pixels in a quadtree.  Next, for each sub-circle, compute it bounding box, so now you have a square instead of a circle.  Query the quadtree data structure to find all points contained within that square.  For each such point, test whether it falls within the sub-circle.  If it does, mark that point as associated with that sub-circle, unless it is already associated with a smaller sub-circle.

I expect the running time of this approach will be approximately $O(n+m)$ where $n$ is the number of colored points and $m$ is the number of sub-circles (assuming there is not too much overlap among the sub-circles, which seems likely to be the case for the parameter settings you listed).  Thus, it should be very efficient.

You can alternatively replace the quadtree with any other data structure for 2D data, such as a k-d tree, though for the parameter sizes you mention, I expect that anything will already be quite fast and so it probably won't be necessary to worry too much about optimizing this as much as possible.