Also, since FontConfig does indexing a) in native code and b) only at install time, more robustness could be built into these measures without runtime cost, including having a detector for fiercely unconventional fonts (like Libre Barcode or Wingdings) which would present basically garbage results with these metrics.
I would make an adjustment to the measurement of weight, to make it the shaded proportion of the area within the outermost convex hull of the outline, rather than the shaded proportion of the bounding box. A way to accomplish this with o (without changing your technique completely) is to flood fill the outside with a third color, then measure the ratio of white to black.
Then the next enhancement would of course be to figure out the logical mapping of these metrics to other scripts. Cyrillic (with Kha height instead of x-height, and о instead of o) is straightforward, Hangeul is harder, communist and republican Chinese characters readily break rules for text color when juxtaposed, Japanese has three writing systems to assess.
As for the application, it would be nice to see the histograms update in relation to eachother (maybe with two toplines, one for the overall histogram, and one for the intersection of the other selected ranges), so I can see the clustering of the histogram when I select a certain weight range.
Also, there seems to be a bug in the range filtering, since all of the results are outside the selected range for me.