Is there a way to display a real-time image histogram of all or part of what my monitor is displaying?

I am trying to adjust brightness/contrast in photo/video editing software that does not provide image histograms. What I would like is a piece of windows software that displays a real-time histogram of all or part of what my monitor is displaying.

This could also be useful for other things, like for example evaluating the tonal distribution in demoscene productions, Windows theme development/tweaking...

Of course I could :
1 - Evaluate histograms of screenshots in Gimp (very tedious because non real-time)
2 - Point my camera (with real-time histogram enabled) to my monitor (...)

So, do any such tools exist, or do you have any insight on how I could go about achieving this ?


If nobody else has a better solution and, if you have any programming experience, you could quickly write a "near realtime" (You have to click "Update histogram" manually) histogram tool yourself with Python and PIL to take a screenshot and then generate and draw your histogram.

I considered looking up how to get the active window on Windows for you, but what you'd really want is a bounding box matched exactly to the displayed image that you can give to ImageGrab.grab(bbox). For that, the simplest option would probably be to roll your own "size/position this window to exactly cover the image" thing using whatever GUI toolkit you're using to draw the window with the "Update histogram" button.

The other option, assuming the images aren't too huge, would be to generate the histogram from the file on disk and hit Ctrl+S before each click to your "Update histogram" button.


Judging by this, a camera should also work.