Tag Archives: video

More Timeslicing + Some Old Stuff

Got a new Cannon Powershot sx200is (was promptly CHDK’d) which can do some surprisingly good 720p video. So I thought I’d have a bash at running some footage through the timeslicing code I’ve written. Unfortunately the re-encoding with ffmpeg wasn’t so good so the quality is a bit out of whack, but here is is anyway with the wonderful BlackCloud1711 modelling for the footage:

Also here’s a couple of pictures of an old GCSE (I think) project. It’s a parallel port controlled pen drum plotter. Most of the mechanical hardware was built by my dad with a couple of design suggestions thrown in from me, all the electronics and software was done by me (before the days of fancy-pancy arduinos). It’s controlled through the parallel port with all the code written in QBasic on a IBM100 (100Mhz raaaawwww power, also the first computer that was mine, it was only about 10 years out of date).

One of these days I’ll get round to adding an arduino with a G-Code interpreter to it so I can get some delicious plotting action on the go.

Time Slicing

Not in the cool Terry Pratchet “Theif of Time” way. More in the “messing-around-with-video-to-get-funny-effects” way.

So imagine video as a set of still images. Then imagine stacking these pictures one in-front of the other. In order to play the video you would have to start at the front of the stack and move backwards making each of the images totally transparent.

Now take that same stack of images, rotate it 90 degrees about the y axis so your looking at them side on (The x axis and time axis have now swapped round). Then take slices through this. You have now time sliced!

Illustration of rotating the "image stack"

Hold onto your hats because heres a video of this in action:

What can this be used for you may be asking? Well if you run a horizontal sobel filter over the individual time sliced frames you have a “rate-of-change-with-time”  for each pixel.

Now take a feed from a camera. Stick the incoming frames onto a queue of a set size. time slice these frames. Do a sobel filter on them and then spin em back to normal and compress all the frames into a single frame (do the average or just take one of them or something). Then use this single frame as an alpha channel mask. This will give you a sort-of-temporally-adjusting-background-subtraction-type-thing.