I've pushed some changes to the pypeline repository, adding basic stacking functionality. There isn't any registration, it only takes the median of each channel (R, G, B) for each pixel. It's currently way slow, but I suspect there is substantial room for improvement there. Wrangling NEF files has proven more difficult than I anticipated, so currently the state of the art in pypeline is JPGs.
My camera is rated down to 32°F, and nightly lows have been around 0, so I'm scared to take it out into the elements. On the plus side, the stacking works with regular images too! Any particular pixel just needs to have the "right" value for at least half the shots.
And the stacked result:
There is a little ghosting, but quite good considering, I'd say. I am not sure how to get rid of that totally. More pictures should quash the error, but at 5 I would have thought it would wipe out any traces of the marker. Also, a better algorithm should be able to push down the > 50% requirement to only a plurality. Maybe with some sort of clustering of values? I'm also taking the mean of each channel independently, maybe a better way would be to use luminance. In any case, baby steps!