PiDiP Is Definitely In Pieces

P.i.D.i.P. for P.D.P.

(Author : Yves Degoyon, Contributors : Lluis Gomez i Bigorda, Pablo Martin Caedes, Tatiana de la O.)

This is intended to work on linux and has been ported to OSX, but it's much more functional in linux.

There is no binary packages of this library because they are never up-to-date.
You can download the code with :

git clone http://giss.tv/~git/git.cgi/pidip.git

pdp_artkp : ARToolKitPlus object for pd.

ARToolKitPlus bindings for pd. It offers a 6 Degrees Of Freedom tracking in theory (3D tracking) using 2D markers.
To use it, you need the ARToolKitPlus sources and to compile pidip with --with-artkp=/path/to/ARToolKitPlus.
This object comes from the investigations of llgib on augmented reality toolkits.

pdp_ascii : an ASCII art renderer.

This object maps pixel blocks to ASCII characters. It can optionally render original colors.

pdp_canvas : a video canvas.

This object lets you display several video sources on a canvas and move them around with the mouse.

pdp_charcoal : charcoal effect.

This abstraction is made of basic pdp objects combined together to create a charcoal effect.

pdp_cluster : color clusterisation and extraction.

This object clusterizes the colors of a video stream in the YUV space, using optionally the Y channel ( luminosity )
and extracts the most present colors in the incoming stream.
It can be useful for color blobs detection ( see pdp_shapes ).

pdp_cmap : a color mapper.

This object lets you change the palette of a video.
It may use the luminosity or not for color detection.

pdp_colorgrid : a color picker written by Lluis Gomez i Bigorda ( http://www.artefacte.org/pd ).

This object lets you pick a color in a palette and send it to other video objects (pdp_ctrack, ...).

pdp_compose : a video compositor.

This object lets you make video incrustation on the basis of a selected hue or luminosity.

pdp_ctrack : a color tracker.

This object lets you follow a color within an image.
It proposes a steady mode that enables the search around the cursor.
It may use the luminosity or not for color detection.

pdp_disintegration : disintegration effect.

A simple effect using neighbours summing up - until saturation.

pdp_dot : dot matrix filter.

A dot matrix filter with ajustable dots size.

pdp_form : a geometric forms adder.

This object lets you add the following forms to a video : lines, rectangles, ellipses.

pdp_freenect : module to get video and data from a kinect device.

Based on libfreenect by Hector Martin & http://openkinect.org'.

pdp_i/pdp_o : PD to PD streaming objects.

These objects use their own codec to transmit video packets over the network.
You can adjust the framerate and a smoothing factor to reduce the bandwidth.

pdp_icedthe~ : a threaded ogg/theora stream reader.

It can receive an ogg/theora stream from icecast2 or flumotion.

pdp_imgloader : load an image and blend it with a video source.

This object handles two levels of transparency : the one of the image and an additional blending factor.

pdp_joint : identify peculiar points in a skeleton ( endings, junctions and inflections ).

This object must be fed by a skeleton image, otherwise the output will be all errors ( red ).
Although the algorithm is written from scratch, it requires utilities from OpenCV.

pdp_mgrid : a grid-based motion detector.

Playing music with a fag.

This object detects movement within a grid and outputs the cells' coordinates.

pdp_morphology : pdp_binary, pdp_erode, pdp_dilate, pdp_hitandmiss, pdp_distance
and patches ( closing, opening, skeletization, thinning, thickening ).

Binary filter. Opening. Closing.
Thinning. Thickening.
Distance. Skeletization.

All the theory on morphology is available here : http://homepages.inf.ed.ac.uk/rbf/HIPR2.
The distance algorithm is inspired by an example of implementation by Paul Rosin : sdt.

pdp_pen : free hand drawing object.

This object is behaving like a free hand drawing layer on top of your videos.

pdp_qtext : a queued and layered text object.

This object enables you to add texts in several layers. The layers have some automatic displaying modes ( scrolling, ... ).

pdp_rec~ : a quicktime file recorder.

This object enables you to record audio and video to a quicktime file.
Video supports the following codecs : jpeg, yuv2, divx, dv, yuv2.
Audio supports the following codecs : twos, raw.

pdp_shape : shape detection object.

This object detects a shape in video, tracks it and enables you to paint it in a different color.

pdp_shapes : color blobs detection object.

This object detects all blobs of a given color.
Contrary to pdp_shape, all blobs of that color will be selected.
You can use pdp_cluster with this object to extract the main colors of a video stream.

pdp_skeleton : skeletonization object ( more precise than the one of the morphology ).

This object skeletonize a binary image to detect particular points ( extremities, junctions, inflections ).
Algorithm from "Graphics Gems IV" by Joseph M. Cychosz.

pdp_spigot : a video signal router.

By selecting a toggle, you can route a video signal to the left or right output.

pdp_spotlight : a spotlight especially made for cabaret.

You can adjust the color and the size and combine it with a tracking object to get a 'poursuite' ( see pdp_cabaret patch ).

pdp_text : a text addition object.

This object enables you to add texts to your videos.
It lets you change the position, the font, the color and the orientation of the text.

pdp_theonice~ : a ogg/theora stream client.

It can send a ogg/theora stream to icecast2 or flumotion.

pdp_theorin~ : threaded theora files reader.

This object plays videos encoded with ogg/theora.

pdp_theorout~ : theora files recorder.

This object can record videos in the ogg/theora format.

pdp_transition : transition between two video sources.

Traditional video transitions : circle ( here ), wipe, blend, melt, page and random.

pdp_ycfilter : YUV color filter.

This object filter a single color out of a video stream
using YUV color space and the use of the luminosity channel (Y) is optional.
You can use pdp_cluster with this object to extract the main colors of a video stream.

pdp_yqt : a quicktime movie reader.

Alike pdp_qt, this object reads Quicktime movies.
Unlike pdp_qt, it tries to read the sound track in real time.
The files shouldn't have compressed headers.

pdp_aging, pdp_baltan, pdp_cycle, pdp_dice, pdp_edge,
pdp_intrusion, pdp_lens, pdp_mosaic, pdp_nervous, pdp_puzzle,
pdp_quark, pdp_radioactiv, pdp_rev, pdp_ripple, pdp_shagadelic
pdp_simura, pdp_spiral, pdp_transform, pdp_underwatch, pdp_vertigo
pdp_warhol, pdp_warp
: the port of effecTV to PDP.

These objects let you apply effecTV filters on your videos.
The detailed description of effects is available here : http://effectv.sourceforge.net/