Finding a specific index in a binary image in linear time?
Depending on the size of your blob, I would say that dramatically reducing the resolution of your image may achieve what you want. 
Reduce it to a 1/10 resolution, find the one white pixel, and then you have a precise idea of where to search for the centroid.
I've got a 640x480 binary image (0s and 255s). There is a single white blob in the image (nearly circular) and I want to find the centroid of the blob (it's always convex). Essentially, what we're dealing with is a 2D boolean matrix. I'd like the runtime to be linear or better if possible - is this possible? 
Two lines of thought so far:

Make use of the numpy.where() function 
Sum the values in each column and row, then find where the max value is based on those numbers... but is there a quick and efficient way to do this? This might just be a case of me being relatively new to python.