Archive for the 'computational cameras' Category

object fetish atelier

Posted in computational cameras | 1 Comment »

DISCOVERING THE EMOTIONAL QUOTA OF EVERYDAY OBJECTS

Picture a scene in which highly valued objects d’art are being examined and appraised for their worth.  Laid out is a precise system for emptying your baggage, your self-worth, your memories, and displaying them in a visual system of objects, a classification order intending to be a mirror of yourself.  Part performance, part interactive art, the Object Fetish Atelier (OFA) seeks to help people understand the meaning and the emotional attachment behind the things they carry with them everyday.

More than interactive art, the OFA offers a service using the metaphor of renegade art agents, who engender the user to question the objects in their posession.  Today, the selection process behind the objects we buy is all the more essential, in light of the new economic order.  In our consumer society, we tend to buy certain objects because we are told that it is like nothing else; in reality, we also buy certain objects because everyone else has done so.  In such a way, these objects are a way for us to project onto its entity our desires, and allows us to become oneself through the accumulation of such objects.  We aim to have the user question the things they own and our appraisal of these objects will imbue them with new life, allowing them to extend beyond mere objectification and rather, giving the owner a chance to develop a new love affair.

PROCESS:
Under the cloak of the OFA, we will ask participants to drop off the contents of their purse, pockets, bags, etc. onto a tray that will be engraved with a matrix that is broken down between different emotional states.  The agents will than insert the tray under a camera that will take in the contents of the tray and going through an array of pixels will distinguish the objects from each other as well as their specific location on the tray.  Using an algorithm in Java that we will develop, the final output will take the user’s objects and create a visual system in a spatial panoply that arranges their objects according to either: (a) emotional state; (b) color; and (c) size/shape.

PROJECT REQUIREMENTS:
In order to accomplish this, we will need to borrow a black table, on top of which we will build a hutch that will house our camera and lighting equipment.  Within the hutch the trays will be inserted.  Underneath the tray we will place a sheet of retro-reflective material under a sheet of clear plexi.  We will also need an LCD screen to display the visual output.

April 20th, 2009

seeing the future

Posted in computational cameras | No Comments »

ABSTRACT: For those of us without any vision impairment, the world is a visually rich environment; and we have learned to base many of our judgments and actions upon what we are able to see.  For those of us without this ability however, the task becomes that much more difficult.  There are several options I believe however in the future in which cameras can aid in the endeavor towards helping vision impairment become a thing of the past.

(1) THE CONTACT CAMERA

The notion of a camera as portable is important in our increasingly mobile society.  The ubiquitous cell phone camera has literally infiltrated the market so much so that the cost of production is minimal yet the instant feedback is intensely satisfying.  Yet despite the fact that we most always have this camera with us given our latent dependencies on cell phones, it still requires the explicit step of centering this camera over our frame of view which at times can be inconvenient and conspicuous.  Enter the world of nanotechnology and biological enhancement to create the Contact Camera.

Current research is being done at the University of Washington to create the Bionic Contact Lens which opens up possibilities of bringing the digital world into our everyday environment, projecting information and data before our very eyes.  Digital contact lenses could be embedded with microscopic electronic circuity that will allow the wearer to not analyze their environment the way a camera sees it in terms of light levels, GPS positioning, and other metadata, but also in honing the eye to a new way of perception  and memory.  Gone are the days of forgetting a certain event or object, the contact camera would be able to instantly transfer data over a wireless network to a databanks that would become warehouses of images, memories, emotions, information and more.

I believe that there could be further implementations of the camera that would be used towards the possible use of the contact camera as enabling the blind to see.  Research done at MIT’s Center for Advanced Visual Studies has shown that projecting images past the damaged parts of the eye directly onto the retina are registered and recognized by the brain, enabling people to see.   Their current prohibitive areas are currently cost and the size of the machine used for this technology which the contact camera could possibly resolve.

(2) CAMERA IN THE THIRD-DIMENSION!

Computer vision is already trained to reconstruct 3D environments from one or several images which can be simply a set of points in space or reconstructing a more complex surface model.  Though currently heavy in its implementation, future models of a camera could possibly quickly produce 3D physical models to be read by the blind along with a voice recording device that would provide additional information.  Although only a conceptual prototype for now, the Touch Sight camera uses these ideas by using a Braille display sheet which than displays a 3D image by embossing the surface, allowing the user to touch their photo.

April 13th, 2009

hot air

Posted in computational cameras | No Comments »

April 6th, 2009

pimp my ride

Posted in computational cameras | No Comments »


Wiked Awesome!!! from Winslow Porter on Vimeo.

For our midterm, we continued the color tracking extravaganza to make it even bigger.  This time we went on a road trip at ITP and turned ourselves into a comic strip.

our roving setup to follow our car comes complete with video camera and laptop and winslow.

Planning our comic strip portion.

and

The code has been refined so that it is less jumpy.

March 9th, 2009

we come from the future

Posted in computational cameras | No Comments »


MASKPARTY featuring Coconut Horse, ODB, Lemonhead, and Mario from Winslow Porter on Vimeo.

Our group wanted to accomplish several things for this week’s assignment: first to improve the code from last week make it less jumpy and to let it track things that are not necessarily in a straight line.  And secondly, to do something different with color tracking.

March 2nd, 2009

a tale of a whale…fish

Posted in computational cameras | 3 Comments »


Catch of the Day from Winslow Porter on Vimeo.

Working with Matt, Winslow, and Meredith, we came up with the idea of using color tracking to help us show off how big of a fish we caught from our “fishing expedition”.  Using the code to put a bounding box around an area as a starting point, we substituted the bounding box with various images of fish and than used the distance between our hands to determine the size of our fish (and one killer whale).  Look! I caught a fish THIS big!

some major brainstorming session goin’ on here…

and on to our light-setup with our painted green squares.

Some problems we encountered were:

(1) getting our fish to size up or down proportionally;

(2) having our camera correctly track our color (this was solved partially through a more adequate lighting setup and using a brighter, more unusual color);

(3 the reflection off the green color we used;

(4) having our fish be correctly located within our hands.

and last but not least, our code.

import processing.video.*;

Capture video;

PImage fish;
int fish_Width;
int fish_Height;

float targetRed = 0.0; //set some numbers for the target you are chasing
float targetGreen = 0.0;
float targetBlue = 200.0;
int similarityThreshold = 60;

// recording movie: objects and variables
MovieMaker mm;// used for capturing video
boolean winslow = false;
boolean recordingStarted = false;
String title = “CrazyAnimation”;
int s,m,h;

void setup(){
size(640, 480); //give you Processingwindow a size
//imageMode(CENTER);

video = new Capture(this, width, height, 30); //initiate the video, resolution and frame rate
fish = loadImage(”fish/fish_0.png”);

s = second();  // Values from 0 – 59
m = minute();  // Values from 0 – 59
h = hour();    // Values from 0 – 23

println(”Press ‘E’ to enable recording”);

}

void captureEvent(Capture camera)
{
camera.read();
}

void draw(){

Rectangle myRect = null;
for(int row=0; row<video.height; row++) { //for each row
for(int col=0; col<video.width; col++) { //for each column
//get the color of this pixels
//find pixel in linear array using formula: pos = row*rowWidth+column
color pix = video.pixels[row*video.width+col];
//find the difference
int diff = (int) dist(targetRed,targetGreen,targetBlue, red(pix), green(pix), blue(pix));
if (diff < similarityThreshold){
if (myRect == null) myRect = new Rectangle(col,row,1,1); //if this is the first thing you found make a new rect
myRect.add(col,row);
}
}
}
image(video,0,0); //draw the video, this might be optional

fill(255,0,0);
if (myRect != null){
if(myRect.width <= 200)
{
fish = loadImage(”fish/fish_0.png”);
fish_Width = fish.width;
fish_Height = fish.height;

}

else if(myRect.width > 200 && myRect.width <= 300)
{
fish = loadImage(”fish/fish_1.png”);
fish_Width = fish.width;
fish_Height = fish.height;

}

else if(myRect.width > 300 && myRect.width <= 400 )
{
fish = loadImage(”fish/fish_2.png”);
fish_Width = fish.width;
fish_Height = fish.height;

}

else if(myRect.width > 400 && myRect.width <= 500)
{
fish = loadImage(”fish/fish_3.png”);
fish_Width = fish.width;
fish_Height = fish.height;

}

else if(myRect.width > 500)
{
fish = loadImage(”fish/fish_4.png”);
fish_Width = fish.width;
fish_Height = fish.height;
}

fish.resize(myRect.width,((fish_Height * myRect.width)/fish_Width));

image(fish, myRect.x, myRect.y – (fish.height/2));
// rect(myRect.x, myRect.x, myRect.width, myRect.height);
}
if(winslow == true){
mm.addFrame();

}

}

void mousePressed(){
//allow the target color to be changed
color pix = video.pixels[mouseY*video.width+mouseX];
targetRed = red(pix); //get the color of the pixel they clicked on
targetGreen = green(pix);
targetBlue = blue(pix);

}

void keyPressed(){
if (key == ’s’) {// start or stop the record head when the ’s’ is pressed
if( recordingStarted == true ){
if( winslow == true ){
winslow = false;
println( “Cut” );
}
else if( winslow == false ){
winslow = true;
println( “Rolling” );
}
}
else{
println( “Press ‘E’ to enable recording” );
}
}
if ( key == ‘e’ ) {// create new movie for saving
if( recordingStarted == false ){
recordingStarted = true;
// set specific compression and frame rate options, file will be saved in a folder called “movies”
mm = new MovieMaker( this, width, height, “movies/”+title+”_”+h+m+s+”.mov”, 15, MovieMaker.ANIMATION, MovieMaker.HIGH );
println();
println( “Press ‘S’ to start and stop the record head” );
println( “Press ‘X’ to save the movie and exit the sketch” );
}
}
if (key == ‘x’) {// Finish the movie if the ‘x’ is pressed
if(recordingStarted == true){
mm.finish();
if(winslow == true){
println(”Cut”);
}
println(”Print!”);
}
// Quit running the sketch once the file is written
println();
println(”close”);
exit();
}
if (keyCode == 38){
similarityThreshold++;

println(”New Threshold: ” + similarityThreshold);
}
else   if (keyCode == 40){
similarityThreshold–;

println(”New Threshold: ” + similarityThreshold);
}
}

February 23rd, 2009

blurred reality

Posted in computational cameras | No Comments »

So using Eclipse in Processing for the first time is a bit of a confusing experience.  First I had to import all the java files in Processing into Eclipse so that they can communicate.  After doing the initial setup in Eclipse however, the code hints in Eclipse are great and I can see how this would save me some heartache in the future.

I did some initial pixel manipulations in Eclipse…using some code examples form the Processing book as well as from the class site.

Thinking of some reasons in the REAL world of why you would want to do this, there are a few that come to mind.

(1) CENSORSHIP: there are some things that big brother just doesn’t want you to recognize. that includes bleep words and bleep images.  What you can’t see doesn’t exist. right?

(2) CHRISTMAS CARDS: sometimes something with a red and green tint just seems so much more holiday-esque

(3) PARTY PROJECTIONS: pixel manipulations blown up big are cool backgrounds.

(4) SCREENSAVERS: self-explanatory

February 8th, 2009

the wishlist

Posted in computational cameras, wishlist | No Comments »

Working with Adam Havey, we came up with the idea of using your cellphone’s camera to contribute to your universal wishlist: a dynamic list that would be continually updated with photos of items that you see while you are out.  Some possible iterations of the wishlist could be:

(a) shopping wishlist

(b) wedding registry

(c) grocery shopping

(d) birthday/anniversary lists

Using Wordpress’ Postie plugin, one can email photos taken with your camera as a post to your Wordpress blog.  In refining your wishlist, one could even further narrow and categorize your photos by arranging it by color, location, date added, etc.

February 1st, 2009
  •  
  • categories

    • art
    • communications lab
    • computational cameras
    • data visualization
    • extra
    • fabricating information
    • ICM
    • installation
    • mechanisms
    • Nature of Code
    • photography
    • physical computing
    • processing
    • reading
    • thesis
    • Uncategorized
    • video sculpture
    • wishlist