Difference between revisions of "User:KvdH/UNRAVEL THE CODE / 2015"
m (moved UNRAVEL THE CODE / 2015 to User:KvdH/UNRAVEL THE CODE / 2015: moved to subpage) |
|||
(115 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
= MEME / KARS= | = MEME / KARS= | ||
− | Focus changing meme for the theme: Abuse of Power | + | ''In collaboration with '''Leontien van Hattem'''''<br/> |
+ | <br> | ||
+ | Focus changing meme for the theme: '''Abuse of Power''' | ||
Inspired by John Baldessari’s technique, to change the focus in an image by sticking colored dots over faces, we came up with the idea to not hide them away but frame the person who really matters. Put a spotlight on the one who deserves it and giving it more attention. Because in the theme ‘abuse of power’ people sometimes forget what the really deserves: their thirty human rights. | Inspired by John Baldessari’s technique, to change the focus in an image by sticking colored dots over faces, we came up with the idea to not hide them away but frame the person who really matters. Put a spotlight on the one who deserves it and giving it more attention. Because in the theme ‘abuse of power’ people sometimes forget what the really deserves: their thirty human rights. | ||
Line 12: | Line 14: | ||
= INFRA ORDINARY/ KARS= | = INFRA ORDINARY/ KARS= | ||
+ | ''In collaboration with '''Lisa Vermeer'''''<br/> | ||
+ | ====Brainstorm==== | ||
+ | Het effect van energie/straling op mensen <br> | ||
+ | Not enjoying our surroundings <br> | ||
+ | where we keep our phones <br> | ||
+ | The plant-wifi research (straling)<br> | ||
+ | we take our phone in social awkward times instead of smiling to people when we past other people<br> | ||
+ | Filmpje: seeing eye people <br> | ||
+ | putting your phone on a pile <br> | ||
+ | clubs where you have to leave your phone<br> | ||
+ | people swiping on a piece of paper <br> | ||
+ | making a rainbow on your screen with water<br> | ||
+ | telephone is your safety thing, if your battery is dead; hell breaks loose. <br> | ||
+ | we are taking a critical approach. the telephone is a entrainment object, being bored is our enemy. We are to busy keeping our minds of the question why we are here. There is always the restless feeling to find the answer. And when we couldn’t find that answer we start to fill our time with understanding everything else. We took an scientific approach on life. And that was the only one, and we tried to (are trying to) make life as pleasing as possible in the meantime. <br> | ||
+ | The sound of phone triggers every one <br> | ||
+ | Walking like slaves around a pole, the people are connected to the treadmill by cords that charge their phones, by walking in circles they generate energy to charge their phones. they need it, they are slaves. <br> | ||
+ | the effect of phones on speakers<br> | ||
+ | ask people to copy the sound of the dial-up sound with their voice. <br> | ||
+ | creating fear and panic by taking away people’s phone safety feeling<br> | ||
+ | there are also positive sides of phone using. <br> | ||
+ | lowlands phone poles random conversations<br> | ||
+ | security & physical aspects<br> | ||
+ | |||
+ | |||
====Research==== | ====Research==== | ||
- We checken onze telefoon 221 keer per dag. | - We checken onze telefoon 221 keer per dag. | ||
Line 58: | Line 84: | ||
<br><br> | <br><br> | ||
====Action==== | ====Action==== | ||
− | Internet Detox: Is it still possible to live without internet and a mobile phone in this time and place? | + | '''Internet Detox''': Is it still possible to live without internet and a mobile phone in this time and place? |
We are going to test this and see how long we will last before we turn mad. | We are going to test this and see how long we will last before we turn mad. | ||
We will capture our thoughts and feelings in writing and filming. | We will capture our thoughts and feelings in writing and filming. | ||
Line 90: | Line 116: | ||
de tijd aan iemand vragen: ja | de tijd aan iemand vragen: ja | ||
− | + | <br> | |
− | |||
Whatsapp van Lena<br> | Whatsapp van Lena<br> | ||
WhatsApp van Jasper<br> | WhatsApp van Jasper<br> | ||
Line 128: | Line 153: | ||
Gemiste oproep van Laila<br> | Gemiste oproep van Laila<br> | ||
Gemiste oproep van Nadine<br> | Gemiste oproep van Nadine<br> | ||
+ | |||
+ | ====Results==== | ||
+ | I made a image who explains the feeling i experienced during the 4 days i was disconnected from the internet and the digital communication devices. I tried to capture all the feelings and experiences. I wrote all the things down and tried to find one word who capture all the thing together: '''separate''' | ||
+ | <br> | ||
+ | <gallery mode="nolines" widths="200px" heights="200px"> | ||
+ | File: wiki20.png| | ||
+ | File: wiki23.png| | ||
+ | |||
+ | |||
+ | |||
+ | </gallery> | ||
====Processing==== | ====Processing==== | ||
[[Code]] | [[Code]] | ||
+ | |||
+ | = CRAFTING CORE MEMORY= | ||
+ | ''In collaboration with '''Lisa Vermeer/Sophie Schulte/Nora Mabrouki'''''<br/> | ||
+ | <br> | ||
+ | we (Kars, Sophie, Lisa, Nora) have eaten: | ||
+ | <br> | ||
+ | a bead (it was kars) <br> | ||
+ | salad <br> | ||
+ | bread with humus <br> | ||
+ | a banana <br> | ||
+ | bread with brie, ham and cheese <br> | ||
+ | krentenbol <br> | ||
+ | bread with salmon <br> | ||
+ | sugar licorice <br> | ||
+ | we crafted: <br> | ||
+ | <br> | ||
+ | A critic on holy knowledge. It was supposed to be a circle but the universe wanted it to be a halo. Because that is what people understand. The knowledge is represented in the dataholding copper wire and mini beads. At least, we like to think it does, but it doesn't. | ||
+ | |||
+ | <gallery mode="nolines" widths="200px" heights="200px"> | ||
+ | File: Craftingmemory1.jpg| | ||
+ | File: Craftingmemory4.jpg| | ||
+ | File: Craftingmemory2.jpg| | ||
+ | File: Craftingmemory3.jpg| | ||
+ | |||
+ | |||
+ | </gallery> | ||
=FUTURE MEMORIES / KARS= | =FUTURE MEMORIES / KARS= | ||
'''FUTURE MEMORY ALPHABET''' | '''FUTURE MEMORY ALPHABET''' | ||
− | <br>''In collaboration with '''Nora | + | <br>''In collaboration with '''Nora Mabrouki'''''<br/> |
====Proces/Research==== | ====Proces/Research==== | ||
− | We | + | We started with the idea to collect all kind of memories from people. We wanted to translate these memories in shape and intensify them by using the human senses. This and a couple of other similar ideas didn't really seemed to work out for us in the end. So we moved on. |
− | + | After doing more research we found out that colours stimulate memory and creativity. | |
+ | <br> | ||
− | + | '''Research shows that:''''' | |
<br> | <br> | ||
+ | - Color can increase brand recognition by 80%. | ||
<br> | <br> | ||
− | + | - In a clinical setting the use of color can help reduce in specific memory problems such as learning difficulties, autism, dyslexia.<br> | |
+ | - The use of color can reduce the reading difficulties of dyslexia.<br> | ||
+ | - The reading rate of people with autism who used a colored overlay went up 35 % in advance. <br> | ||
+ | - Colour is also used to treat patients suffering from Alzheimer's disease. <br> | ||
+ | - Colors have the potential to attract our attention and raise attention levels, this way it helps us to remember things better.<br> | ||
+ | The Right Colours Make Data Easier To Read:https://hbr.org/2014/04/the-right-colors-make-data-easier-to-read/ <br> | ||
<br> | <br> | ||
− | + | The next idea was to make an alphabet out of only colours. To make the right cross over from letter to colour we looked at how the computer reads text. By using the binaire code from a letter and translating this to a HEX code. This was possible but by each letter you could only get a third of the HEX, which means you would need three letters to get one colour. This was almost impossible to realize in processing. | |
− | |||
− | |||
− | |||
− | |||
− | |||
+ | We started thinking about en researching for everything we could find about memory. One of the most interesting things we found was that colours stimulate memory and creativity | ||
Line 165: | Line 230: | ||
File: wiki9.png| | File: wiki9.png| | ||
</gallery> | </gallery> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
====Concept==== | ====Concept==== | ||
Line 185: | Line 245: | ||
File: wiki13.jpg| | File: wiki13.jpg| | ||
File: wiki14.jpg| | File: wiki14.jpg| | ||
+ | File: Legenda.jpg| | ||
</gallery> | </gallery> | ||
− | |||
− | |||
− | |||
====Processing Code==== | ====Processing Code==== | ||
[[CODE]] | [[CODE]] | ||
+ | |||
+ | =Q10 / KARS= | ||
+ | |||
+ | == Question == | ||
+ | Can I create a new universal script/language? | ||
+ | |||
+ | == Brainstorm == | ||
+ | Esperanto <br> | ||
+ | New typographic solution <br> | ||
+ | New alphabet <br> | ||
+ | Pictograms <br> | ||
+ | Binary code <br> | ||
+ | Color <br> | ||
+ | ==RESEARCH== | ||
+ | ====Making your own Language==== | ||
+ | http://www.instructables.com/id/Making-your-own-Language/ | ||
+ | ====The Universal Language==== | ||
+ | http://esperantodocumentary.com/en/about-the-film <br> | ||
+ | The Universal Language is a new documentary from Academy Award-nominated director Sam Green (The Weather Underground). This 30-minute film traces the history of Esperanto, an artificial language that was created in the late 1800s by a Polish eye doctor who believed that if everyone in the world spoke a common tongue, humanity could overcome racism and war. Fittingly, the word “Esperanto” means “one who hopes.” | ||
+ | |||
+ | During the early 20th century, hundreds of thousands of people around the world spoke Esperanto and believed in its ideals. Today, surprisingly, a vibrant Esperanto movement still exists. In this first-ever documentary about Esperanto, Green creates a portrait of the language and those who speak it today that is at once humorous, poignant, stirring, and ultimately hopeful. | ||
+ | |||
+ | ====International Auxiliary Language==== | ||
+ | https://en.wikipedia.org/wiki/International_auxiliary_language | ||
+ | <br> | ||
+ | An international auxiliary language (sometimes abbreviated as IAL or auxlang) or interlanguage is a language meant for communication between people from different nations who do not share a common first language. An auxiliary language is primarily a second language. | ||
+ | |||
+ | ====Esperanto==== | ||
+ | https://nl.wikipedia.org/wiki/Esperanto <br> | ||
+ | Esperanto is een door Lejzer Zamenhof ontworpen, makkelijk te leren, politiek neutrale, internationale taal (kunsttaal). In 1887 publiceerde hij onder het pseudoniem Dr. Esperanto - "iemand die hoopt" - het eerste boek over de taal met de titel: La internacia lingvo (de internationale taal). De taal werd echter bekend onder Zamenhofs pseudoniem en kreeg zo de naam Esperanto. | ||
+ | |||
+ | Esperanto wordt inmiddels in meer dan 120 landen[1] gesproken en heeft rond de twee miljoen sprekers.[2] Er vinden jaarlijks wereldwijd vele congressen plaats in het Esperanto.[3] In 1905 werd het eerste internationale congres met Esperanto georganiseerd in Frankrijk. | ||
+ | |||
+ | ====Is Art The Universal Language?==== | ||
+ | painting, music, architecture, dance, photography, drama, or sculpture speak to all people everywhere? | ||
+ | |||
+ | If Art is the “expression of the heart”, is it capable of uniting us all? Art may speak to all of us. A dynamic rendition of a symphony moves people equally no matter whether they reside in Japan, Indonesia, or Germany. A striking piece of artwork elicits a response from each of us regardless of our cultural upbringings or ethnic backgrounds. | ||
+ | |||
+ | ====NATO phonetic alphabet==== | ||
+ | https://en.wikipedia.org/wiki/NATO_phonetic_alphabet <br> | ||
+ | Het spellingsalfabet van de NAVO dient (evenals andere spelalfabetten) om met behulp van spraak met zo min mogelijk fouten een boodschap te kunnen spellen, ook bijvoorbeeld bij een zeer slecht verstaanbare telefoonverbinding. Het door de NAVO gehanteerde spelalfabet is zo opgesteld dat woorden uit het alfabet niet of nauwelijks te verwisselen zijn, ook niet bij communicatie tussen sprekers van verschillende moedertalen; er is zo veel mogelijk gebruikgemaakt van woorden die in alle in de NAVO gangbare talen een eenduidige letterassociatie hebben. | ||
+ | |||
+ | ====Could a new phonetic alphabet promote world peace?==== | ||
+ | http://www.bbc.com/news/magazine-21505114 <br> | ||
+ | Backers of a universal alphabet say it will make pronunciation easy and foster international understanding. But can phonetic spelling systems really smooth the path to world peace? | ||
+ | <br> | ||
+ | ====The Story Behind the Universal Icons That Came Long Before Emoji==== | ||
+ | http://gizmodo.com/the-story-behind-the-universal-icons-that-came-long-bef-1592800916 | ||
+ | ====New Alphabet Wim Crouwel==== | ||
+ | New Alphabet is een persoonlijk, experimenteel project van Crouwel. De letter omarmt de beperkingen van de kathodestraalbuis-technologie, dat werd gebruikt in het fotozet-procedé, en bestaat zodoende alleen uit horizontalen en verticalen. Klassieke letters hebben vaak te lijden onder deze beperkingen. Crouwel wilde een letter ontwerpen voor de moderne technieken. Gezien het feit dat de letters alleen uit horizontalen en verticalen bestaan, zijn sommige letters zeer onconventioneel, andere vrijwel onherkenbaar. Het letterontwerp werd hierdoor dan ook met gemengde gevoelens ontvangen. De meeste letters zijn gebaseerd op een rechthoekig grid van 5 bij 9 units, met op 45 graden afgeronde hoekjes. Er wordt geen onderscheid gemaakt tussen onderkast en kapitalen. Veel vakgenoten vonden het letterontwerp te ver gaan, en hierdoor ontstond er een levendig debat over in o.a. de vakliteratuur. Het experimentele karakter van het ontwerp had mede als doel om een dergelijk debat op gang te brengen. | ||
+ | <gallery mode="nolines" widths="200px" heights="200px"> | ||
+ | File: Newalphabet.png| | ||
+ | File: crouwel1.png| | ||
+ | File: crouwel2.gif| | ||
+ | </gallery> | ||
+ | |||
+ | ====Historical alphabets==== | ||
+ | <gallery mode="nolines" widths="200px" heights="200px"> | ||
+ | File: alfa1.jpg| | ||
+ | File: alfa2.jpg| | ||
+ | File: alfa3.gif| | ||
+ | File: alfa4.png| | ||
+ | File: alfa5.gif| | ||
+ | File: alfa6.gif| | ||
+ | File: alfa7.gif| | ||
+ | File: alfa8.jpg| | ||
+ | </gallery> | ||
+ | |||
+ | ====Top 10 Most Spoken Languages In The World==== | ||
+ | Mandarin 1 billion+ <br> | ||
+ | English 508 million <br> | ||
+ | Hindustani 497 million <br> | ||
+ | Spanish 392 million <br> | ||
+ | Russian 277 million <br> | ||
+ | Arabic 246 million <br> | ||
+ | Bengali 211 million <br> | ||
+ | Portuguese 191 million <br> | ||
+ | Malay-Indonesian 159 million <br> | ||
+ | French 159 million<br> | ||
+ | |||
+ | <gallery mode="nolines" widths="200px" heights="200px"> | ||
+ | File: mandarin.gif|Mandarin | ||
+ | File: English.png| English | ||
+ | File: hindustani.gif| Hindustani | ||
+ | File: spanish.gif| Spanish | ||
+ | File:Russian.gif| Russian | ||
+ | File: arabic.gif| Arabic | ||
+ | File: bengali.gif| Bengali | ||
+ | File: portugees.png| Portugees | ||
+ | File: MalayIndonesian .png| Bengali | ||
+ | File: French.jpg| French | ||
+ | </gallery> | ||
+ | |||
+ | == Concept == | ||
+ | In kwartaal 10 ben ik (na wat wisselingen tussen onderwerpen) veder gegaan met het kleuren alfabet. Ik wilde een manier ontwikkelen waar er transitie is tussen ons hedendaagse alfabet en het nieuwe alfabet wat ik ontwikkeld heb. Ik wilde deze transitie speels maken en als een soort spel presenteren. Door het op deze wijze aan de toeschouwer te presenteren hoop ik dat de toeschouwer de transitie snapt en er mee speelt. | ||
+ | |||
+ | == Code == | ||
+ | import gab.opencv.*; | ||
+ | import processing.video.*; | ||
+ | import java.awt.Rectangle; | ||
+ | import SimpleOpenNI.*; | ||
+ | SimpleOpenNI context; | ||
+ | Capture video; | ||
+ | OpenCV opencv; | ||
+ | |||
+ | Capture cam; | ||
+ | PImage src; | ||
+ | |||
+ | |||
+ | // <1> Set the range of Hue values for our filter | ||
+ | //ArrayList<Integer> colors; | ||
+ | int maxColors = 10; //aantal kleuren | ||
+ | ArrayList<Contour>[] contours = new ArrayList[maxColors]; | ||
+ | |||
+ | int[] hues; | ||
+ | int[] sats; | ||
+ | int[] colors; | ||
+ | char[] karakters = { | ||
+ | ‘T’, ‘T’, ‘O’, ‘O’, ‘C’, ‘R’, ‘A’, ‘E’,’=’,’F’ | ||
+ | }; | ||
+ | int rangeWidth = 12; | ||
+ | int saturationMinimum = 50; | ||
+ | |||
+ | PImage[] outputs; | ||
+ | |||
+ | int colorToChange = -1; | ||
+ | |||
+ | void setup() { | ||
+ | |||
+ | String[] cameras = Capture.list(); | ||
+ | |||
+ | if (cameras == null) { | ||
+ | println(“Failed to retrieve the list of available cameras, will try the default...”); | ||
+ | video = new Capture(this, 640, 480); | ||
+ | } | ||
+ | if (cameras.length == 0) { | ||
+ | println(“There are no cameras available for capture.”); | ||
+ | exit(); | ||
+ | } else | ||
+ | |||
+ | { | ||
+ | println(“Available cameras:”); | ||
+ | for (int i = 0; i < cameras.length; i++) { | ||
+ | println(cameras[i]); | ||
+ | } | ||
+ | |||
+ | // The camera can be initialized directly using an element | ||
+ | // from the array returned by list(): | ||
+ | video = new Capture(this, cameras[15]); | ||
+ | // Or, the settings can be defined based on the text in the list | ||
+ | //cam = new Capture(this, 640, 480, “Built-in iSight”, 30); | ||
+ | |||
+ | // Start capturing the images from the camera | ||
+ | video.start(); | ||
+ | } | ||
+ | |||
+ | //video = new Capture(this, 640, 480); | ||
+ | //context = new SimpleOpenNI(this); | ||
+ | //if (context.isInit() == false) | ||
+ | /*if (video.isInit() == false) | ||
+ | { | ||
+ | println(“Can’t init SimpleOpenNI, maybe the camera is not connected!”); | ||
+ | exit(); | ||
+ | return; | ||
+ | }*/ | ||
+ | //context.enableRGB(); | ||
+ | //video.enableRGB(); | ||
+ | |||
+ | opencv = new OpenCV(this, 640, 480); | ||
+ | for (int x=0; x<maxColors; x++) { | ||
+ | contours[x] = new ArrayList<Contour>(); | ||
+ | } | ||
+ | size(opencv.width + opencv.width/4 + 30, opencv.height, P2D); | ||
+ | |||
+ | // Array for detection colors | ||
+ | colors = new int[maxColors]; | ||
+ | hues = new int[maxColors]; | ||
+ | sats = new int[maxColors]; | ||
+ | |||
+ | colors[0] = color(190, 56, 57 ); // letter T | ||
+ | //colors[1] = color(235, 81, 77 ); // letter T | ||
+ | colors[2] = color(72, 77, 138 ); // letter O | ||
+ | //colors[3] = color(177, 85, 137 ); // letter O | ||
+ | //colors[4] = color(82, 148, 85 ); // letter C 9 karakters | ||
+ | colors[5] = color(223, 126, 81 ); // letter R | ||
+ | colors[6] = color(204, 211, 66 ); // letter = | ||
+ | colors[7] = color(90, 148, 181 ); // letter S | ||
+ | colors[8] = color(120, 85, 134 ); // letter E | ||
+ | //colors[9] = color(180, 58, 87 ); // letter E | ||
+ | |||
+ | //colors[0] = color(243, 231, 50); // letter M | ||
+ | //colors[1] = color(229, 28, 45); // letter N | ||
+ | //colors[2] = color(60, 99, 172); // letter O | ||
+ | //colors[0] = color(87, 177, 75); // letter P | ||
+ | //colors[1] = color(244, 152, 36); // letter Q | ||
+ | //colors[2] = color(117, 79, 155); // letter R | ||
+ | //colors[1] = color(244, 152, 36); // letter S | ||
+ | //colors[2] = color(117, 79, 155); // letter T | ||
+ | //colors[0] = color(243, 231, 50); // letter U | ||
+ | //colors[1] = color(229, 28, 45); // letter V | ||
+ | //colors[2] = color(60, 99, 172); // letter W | ||
+ | //colors[0] = color(87, 177, 75); // letter X | ||
+ | //colors[1] = color(244, 152, 36); // letter Y | ||
+ | //colors[2] = color(117, 79, 155); // letter Z | ||
+ | |||
+ | for (int x=0; x<maxColors; x++) { | ||
+ | hues[x] = int(map(hue(colors[x]), 0, 255, 0, 180)); | ||
+ | sats[x] = int(map(saturation(colors[x]), 0, 255, 0, 180)); | ||
+ | } | ||
+ | outputs = new PImage[maxColors]; | ||
+ | |||
+ | video.start(); | ||
+ | } | ||
+ | |||
+ | void draw() { | ||
+ | |||
+ | background(150); | ||
+ | |||
+ | if (video.available()) { | ||
+ | video.read(); | ||
+ | } | ||
+ | |||
+ | //context.update(); | ||
+ | //video.update(); | ||
+ | // <2> Load the new frame of our movie in to OpenCV | ||
+ | //context.rgbImage(); | ||
+ | //video.rgbImage(); | ||
+ | PImage hueImage = video; | ||
+ | hueImage.loadPixels(); | ||
+ | |||
+ | for (int x = 0; x < hueImage.width; x++) { | ||
+ | for (int y = 0; y < hueImage.height; y++ ) { | ||
+ | // Calculate the 1D pixel location | ||
+ | int loc = x + y*hueImage.width; | ||
+ | // Get the R,G,B values from image | ||
+ | float r = red (hueImage.pixels[loc]); | ||
+ | float g = green (hueImage.pixels[loc]); | ||
+ | float b = blue (hueImage.pixels[loc]); | ||
+ | // Change white blance here | ||
+ | |||
+ | r *= 1; | ||
+ | g *= 1; | ||
+ | b *= 1; | ||
+ | // Constrain RGB to between 0-255 | ||
+ | r = constrain(r, 0, 255); | ||
+ | g = constrain(g, 0, 255); | ||
+ | b = constrain(b, 0, 255); | ||
+ | // Make a new color and set pixel in the window | ||
+ | color c = color(r, g, b); | ||
+ | hueImage.pixels[loc] = c; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | hueImage.updatePixels(); | ||
+ | |||
+ | opencv.loadImage(hueImage); | ||
+ | |||
+ | // Tell OpenCV to use color information | ||
+ | opencv.useColor(); | ||
+ | src = opencv.getSnapshot(); | ||
+ | |||
+ | // <3> Tell OpenCV to work in HSV color space. | ||
+ | opencv.useColor(HSB); | ||
+ | |||
+ | detectColors(); | ||
+ | |||
+ | // Show images | ||
+ | image(src, 0, 0); | ||
+ | for (int i=0; i<outputs.length; i++) { | ||
+ | if (outputs[i] != null) { | ||
+ | image(outputs[i], width-src.width/4, i*src.height/4, src.width/4, src.height/4); | ||
+ | |||
+ | noStroke(); | ||
+ | fill (0,0,0); | ||
+ | rect(src.width, i*src.height/4, 30, src.height/4); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Print text if new color expected | ||
+ | //background(0,0,0); | ||
+ | textSize(20); | ||
+ | //stroke(255); | ||
+ | //fill(255); | ||
+ | |||
+ | //if (colorToChange > -1) { | ||
+ | //text(“click to change color “ + colorToChange, 10, 25); | ||
+ | //} else { | ||
+ | //text(“press key [1-4] to select color”, 10, 25); | ||
+ | //} | ||
+ | |||
+ | displayContoursBoundingBoxes(); | ||
+ | } | ||
+ | |||
+ | void detectColors() { | ||
+ | |||
+ | for (int i=0; i<hues.length; i++) { | ||
+ | |||
+ | |||
+ | if (hues[i] <= 0) continue; | ||
+ | |||
+ | opencv.loadImage(src); | ||
+ | opencv.useColor(HSB); | ||
+ | |||
+ | // <4> Copy the Hue channel of our image into | ||
+ | // the gray channel, which we process. | ||
+ | opencv.setGray(opencv.getH().clone()); | ||
+ | int hueToDetect = hues[i]; | ||
+ | opencv.inRange(hueToDetect-rangeWidth/2, hueToDetect+rangeWidth/2); | ||
+ | |||
+ | PImage hueImage = opencv.getSnapshot(); | ||
+ | |||
+ | opencv.setGray(opencv.getS().clone()); | ||
+ | opencv.inRange(saturationMinimum, 255);//tweak voor saturatie drempel | ||
+ | PImage satImage = opencv.getSnapshot(); | ||
+ | |||
+ | //multiply hue image with sat threshhold | ||
+ | hueImage.loadPixels(); | ||
+ | satImage.loadPixels(); | ||
+ | for (int x = 0; x < hueImage.width; x++) { | ||
+ | for (int y = 0; y < hueImage.height; y++ ) { | ||
+ | // Calculate the 1D pixel location | ||
+ | int loc = x + y*hueImage.width; | ||
+ | // Get the R,G,B values from image | ||
+ | float r = red (hueImage.pixels[loc]); | ||
+ | float r2 = red (satImage.pixels[loc]); | ||
+ | if ((r==0)||(r2==0)) hueImage.pixels[loc] = color(0, 0, 0); | ||
+ | } | ||
+ | } | ||
+ | hueImage.updatePixels(); | ||
+ | |||
+ | // <6> Save the processed image for reference. | ||
+ | outputs[i] = hueImage; | ||
+ | } | ||
+ | |||
+ | // <7> Find contours in our range image. | ||
+ | // Passing ‘true’ sorts them by descending area. | ||
+ | for (int x=0; x<maxColors; x++) { | ||
+ | if (outputs[x] != null) { | ||
+ | |||
+ | opencv.loadImage(outputs[x]); | ||
+ | contours[x] = opencv.findContours(true, true); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void displayContoursBoundingBoxes() { | ||
+ | for (int x=0; x<maxColors; x++) { | ||
+ | |||
+ | for (int i=0; i<contours[x].size (); i++) { | ||
+ | |||
+ | Contour contour = contours[x].get(i); | ||
+ | Rectangle r = contour.getBoundingBox(); | ||
+ | |||
+ | if (r.width < 50 || r.height < 50) | ||
+ | continue; | ||
+ | |||
+ | stroke(0, 0, 0); | ||
+ | noFill(); | ||
+ | strokeWeight(2); | ||
+ | rect(r.x, r.y, r.width + 5, r.height + 5); | ||
+ | |||
+ | textSize(r.width*0.5); | ||
+ | text(karakters[x], r.x + (r.width * 0.5), r.y + (r.height * 0.5)); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | ==Proces== | ||
+ | Voor dit ontwerp moest ik een processing code schrijven die via een camera in staat was om verschillende kleuren van elkaar te kunnen onderscheiden. Dit was echter sneller gezegd dan gedaan. Het coderen van dit onderwerp heeft veel tijd in beslag genomen. | ||
+ | |||
+ | De uitkomst is een kleine installatie waarbij een camera verschillende gekleurde vlakken van elkaar onderscheid en op een computer scherm de vertaling toont. | ||
+ | <gallery mode="nolines" widths="200px" heights="200px"> | ||
+ | File: IMG_0407.JPG| | ||
+ | |||
+ | </gallery> | ||
+ | |||
+ | == End Results == | ||
+ | Het eind resultaat is een installatie die de transitie laat zien tussen het oude en nieuwe alfabet. Ik heb gekleurde houten schijven gemaakt die door de camera kunnen worden uitgelezen. De bedoeling is dat de toeschouwer speelt met de kleuren en zo het nieuwe alfabet onder de knie kan krijgen. Het eind resultaat kan gezien worden als een soort campagne voor het nieuwe alfabet. | ||
+ | |||
+ | <gallery mode="nolines" widths="200px" heights="200px"> | ||
+ | File: IMG_0405.JPG| | ||
+ | |||
+ | </gallery> |
Latest revision as of 09:27, 12 October 2016
Contents
- 1 MEME / KARS
- 2 INFRA ORDINARY/ KARS
- 3 CRAFTING CORE MEMORY
- 4 FUTURE MEMORIES / KARS
- 5 Q10 / KARS
- 5.1 Question
- 5.2 Brainstorm
- 5.3 RESEARCH
- 5.3.1 Making your own Language
- 5.3.2 The Universal Language
- 5.3.3 International Auxiliary Language
- 5.3.4 Esperanto
- 5.3.5 Is Art The Universal Language?
- 5.3.6 NATO phonetic alphabet
- 5.3.7 Could a new phonetic alphabet promote world peace?
- 5.3.8 The Story Behind the Universal Icons That Came Long Before Emoji
- 5.3.9 New Alphabet Wim Crouwel
- 5.3.10 Historical alphabets
- 5.3.11 Top 10 Most Spoken Languages In The World
- 5.4 Concept
- 5.5 Code
- 5.6 Proces
- 5.7 End Results
MEME / KARS
In collaboration with Leontien van Hattem
Focus changing meme for the theme: Abuse of Power
Inspired by John Baldessari’s technique, to change the focus in an image by sticking colored dots over faces, we came up with the idea to not hide them away but frame the person who really matters. Put a spotlight on the one who deserves it and giving it more attention. Because in the theme ‘abuse of power’ people sometimes forget what the really deserves: their thirty human rights.
INFRA ORDINARY/ KARS
In collaboration with Lisa Vermeer
Brainstorm
Het effect van energie/straling op mensen
Not enjoying our surroundings
where we keep our phones
The plant-wifi research (straling)
we take our phone in social awkward times instead of smiling to people when we past other people
Filmpje: seeing eye people
putting your phone on a pile
clubs where you have to leave your phone
people swiping on a piece of paper
making a rainbow on your screen with water
telephone is your safety thing, if your battery is dead; hell breaks loose.
we are taking a critical approach. the telephone is a entrainment object, being bored is our enemy. We are to busy keeping our minds of the question why we are here. There is always the restless feeling to find the answer. And when we couldn’t find that answer we start to fill our time with understanding everything else. We took an scientific approach on life. And that was the only one, and we tried to (are trying to) make life as pleasing as possible in the meantime.
The sound of phone triggers every one
Walking like slaves around a pole, the people are connected to the treadmill by cords that charge their phones, by walking in circles they generate energy to charge their phones. they need it, they are slaves.
the effect of phones on speakers
ask people to copy the sound of the dial-up sound with their voice.
creating fear and panic by taking away people’s phone safety feeling
there are also positive sides of phone using.
lowlands phone poles random conversations
security & physical aspects
Research
- We checken onze telefoon 221 keer per dag. http://bewustoffline.nl/verslaafd-aan-je-telefoon/
- Paul Miller voelde zich geisoleerd na een jaar internetloos. http://www.theverge.com/2013/5/1/4279674/im-still-here-back-online-after-a-year-without-the-internet
- er is een afkickkamp in Amerika, Camp Grounded: https://www.lindanieuws.nl/nieuws/afkickkamp-voor-telefoonverslaafden/ http://campgrounded.org/
- telefooncellen zijn bijna uit het straatbeeld verwijderd: er zijn geen telefoons meer te koop bij de albertheijn:
http://www.globalresearch.ca/student-science-experiment-finds-plants-wont-grow-near-wi-fi-router/5336877 http://www.thelightphone.com/#thelightphone http://www.marktplaats.nl/a/audio-tv-en-foto/videocamera-s-sport-en-actiecamera-s/m962417748-hd-sport-actie-camera.html?c=80906a7f13ccf514b11788e5504db095&previousAction=asqSent http://www.bol.com/nl/p/full-hd-action-camera-gopro-extra-batterij-sd-kaart-16gb-wifi/9200000048083611/
http://www.volkskrant.nl/binnenland/slapen-in-een-kooi-tegen-de-gsm-straling~a684743/
http://www.instructables.com/id/CELL-PHONE-RADIATION-SHIELD/
- Elektromagnetische Straling blocking materials pure silver copper, stainless steel nickel
- gsm in europa is 1800Mhz (1,8Ghz)
golflengte (labda)=1/frequentie*constante
golflengte=1/1.800.000.000*300.000.000 eerst delen, dan vermenigvuldig
het antwoord is dan:0.16 m. (16 cm.)
Het kippengaas van mij met 2 cm diameter zou dus prima moeten werken. Ik snap er dan ook niets van waarom mijn gsm het toch doet!?!?
Action
Internet Detox: Is it still possible to live without internet and a mobile phone in this time and place? We are going to test this and see how long we will last before we turn mad. We will capture our thoughts and feelings in writing and filming. There is a set of rules: we can only use technology without internet, and we are not allowed to use our mobile phones. At the end we will bring our findings together, so the fieldresearch/action is the base of our design.
wat gebeurt er als je geen mobile devices gebruikt?
- geen mail
- geen schoolrooster/opdrachten, leraren mailen
- geen whatsapp
- geen facebook (evenementen, verjaardagen enzo)
wat mogen we wel en wat mogen we niet? en waarom mogen we dat wel en waarom niet?
testen hoe wij er op reageren, de generatie die opgegroeid is met mobiele apparaten. is het mogelijk zonder internet deze school te volgen? we gaan niet alleen mobiel loos testen maar ook internetloos. als je het doet moet je het goed doen. iedereen doet het, en gaat er vanuit dat jij het ook doet. en jij stopt er ineens mee. vastleggen met een go pro we moeten er op vertrouwen dat internet op vaste apparaat: niet internet op mobiel apparaat: niet, telefonie op vast apparaat: 1 apparaat op 1 plek telefonie op mobiel apparaat: nee anderen vragen niet bellen of op internet kijken voor ons: niet als er iemand dood is of je bent in levensbedreigende situatie: ja hoeveel nummers mag je opslaan: 10 mensen van te voren laten weten dat je alleen bereikbaar bent op vaste telefoon: ja kijken op een mobiele telefoon/laptop/computer van iemand anders: ja computer gebruiken die thuis staat en zo dus niet mobiel is: ja de tijd aan iemand vragen: ja
Whatsapp van Lena
WhatsApp van Jasper
WhatsApp van Moeder
WhatsApp van Vader
Whatsapp van Marnik
Whatsapp van Leontien
Whatsapp van Nadine
WhatsApp van Laila
Facebook: HEEFT IEMAND HET GOEDE TELEFOON NUNMER VAN KARS? OF LEEFT HIJ NOG? HIJ REAGEERT NERGENS MEER OP. Joe
Facebookchat: Hallo?
Facebookchat: Kars?
Facebookchat: Yo waarom reageer je nergens op?
Facebookchat: Ik probeer je te bereiken!
Facebookchat: Hee kom je vanavond ook?
Facebookchat: Hee zin om bier te drinken?
Sms: Hee kars we vroegen ons af of alles goed met je gaat we hadden al een tijd niks van je gehoord kus
Gemiste oproep van Gideon
Gemiste oproep van Julie
Gemiste oproep van Thuis
Gemiste oproep van Thuis
Gemiste oproep van Thuis
Gemiste oproep van Marnik
Gemiste oproep van Nadine
Gemiste oproep van Nadine
Gemiste oproep van Gideon
Gemiste oproep van Iris
Gemiste oproep van Jasper
Gemiste oproep van Thomas
Gemiste oproep van Thuis
Gemiste oproep van Laila
Gemiste oproep van Laila
Gemiste oproep van Nadine
Results
I made a image who explains the feeling i experienced during the 4 days i was disconnected from the internet and the digital communication devices. I tried to capture all the feelings and experiences. I wrote all the things down and tried to find one word who capture all the thing together: separate
Processing
CRAFTING CORE MEMORY
In collaboration with Lisa Vermeer/Sophie Schulte/Nora Mabrouki
we (Kars, Sophie, Lisa, Nora) have eaten:
a bead (it was kars)
salad
bread with humus
a banana
bread with brie, ham and cheese
krentenbol
bread with salmon
sugar licorice
we crafted:
A critic on holy knowledge. It was supposed to be a circle but the universe wanted it to be a halo. Because that is what people understand. The knowledge is represented in the dataholding copper wire and mini beads. At least, we like to think it does, but it doesn't.
FUTURE MEMORIES / KARS
FUTURE MEMORY ALPHABET
In collaboration with Nora Mabrouki
Proces/Research
We started with the idea to collect all kind of memories from people. We wanted to translate these memories in shape and intensify them by using the human senses. This and a couple of other similar ideas didn't really seemed to work out for us in the end. So we moved on.
After doing more research we found out that colours stimulate memory and creativity.
Research shows that:
- Color can increase brand recognition by 80%.
- In a clinical setting the use of color can help reduce in specific memory problems such as learning difficulties, autism, dyslexia.
- The use of color can reduce the reading difficulties of dyslexia.
- The reading rate of people with autism who used a colored overlay went up 35 % in advance.
- Colour is also used to treat patients suffering from Alzheimer's disease.
- Colors have the potential to attract our attention and raise attention levels, this way it helps us to remember things better.
The Right Colours Make Data Easier To Read:https://hbr.org/2014/04/the-right-colors-make-data-easier-to-read/
The next idea was to make an alphabet out of only colours. To make the right cross over from letter to colour we looked at how the computer reads text. By using the binaire code from a letter and translating this to a HEX code. This was possible but by each letter you could only get a third of the HEX, which means you would need three letters to get one colour. This was almost impossible to realize in processing.
We started thinking about en researching for everything we could find about memory. One of the most interesting things we found was that colours stimulate memory and creativity
The Right Colours Make Data Easier To Read:https://hbr.org/2014/04/the-right-colors-make-data-easier-to-read/
Binary To Code: http://www.binaryhexconverter.com
Concept
We designed an alphabet consisting out of colours. We used squares for the 26 letters of the alphabet and cirkels for the digits 0 till 9. We based our colours on an universal palet of colours used for mapping countries. The colours are incompatible with other colours so that you can see the difference between countries. This is perfect for making an alphabet, there must be a clear contrast and separation.
End Result
We wrote a program in processing. Where we could translate letters in to colours. After this we were able to translate any text we would like. As an example we translate the wiki page into an publication. You need time and diseplin to read the hole text and thats also a part of the statement we want to make. Photo's of the publication will follow.
Processing Code
Q10 / KARS
Question
Can I create a new universal script/language?
Brainstorm
Esperanto
New typographic solution
New alphabet
Pictograms
Binary code
Color
RESEARCH
Making your own Language
http://www.instructables.com/id/Making-your-own-Language/
The Universal Language
http://esperantodocumentary.com/en/about-the-film
The Universal Language is a new documentary from Academy Award-nominated director Sam Green (The Weather Underground). This 30-minute film traces the history of Esperanto, an artificial language that was created in the late 1800s by a Polish eye doctor who believed that if everyone in the world spoke a common tongue, humanity could overcome racism and war. Fittingly, the word “Esperanto” means “one who hopes.”
During the early 20th century, hundreds of thousands of people around the world spoke Esperanto and believed in its ideals. Today, surprisingly, a vibrant Esperanto movement still exists. In this first-ever documentary about Esperanto, Green creates a portrait of the language and those who speak it today that is at once humorous, poignant, stirring, and ultimately hopeful.
International Auxiliary Language
https://en.wikipedia.org/wiki/International_auxiliary_language
An international auxiliary language (sometimes abbreviated as IAL or auxlang) or interlanguage is a language meant for communication between people from different nations who do not share a common first language. An auxiliary language is primarily a second language.
Esperanto
https://nl.wikipedia.org/wiki/Esperanto
Esperanto is een door Lejzer Zamenhof ontworpen, makkelijk te leren, politiek neutrale, internationale taal (kunsttaal). In 1887 publiceerde hij onder het pseudoniem Dr. Esperanto - "iemand die hoopt" - het eerste boek over de taal met de titel: La internacia lingvo (de internationale taal). De taal werd echter bekend onder Zamenhofs pseudoniem en kreeg zo de naam Esperanto.
Esperanto wordt inmiddels in meer dan 120 landen[1] gesproken en heeft rond de twee miljoen sprekers.[2] Er vinden jaarlijks wereldwijd vele congressen plaats in het Esperanto.[3] In 1905 werd het eerste internationale congres met Esperanto georganiseerd in Frankrijk.
Is Art The Universal Language?
painting, music, architecture, dance, photography, drama, or sculpture speak to all people everywhere?
If Art is the “expression of the heart”, is it capable of uniting us all? Art may speak to all of us. A dynamic rendition of a symphony moves people equally no matter whether they reside in Japan, Indonesia, or Germany. A striking piece of artwork elicits a response from each of us regardless of our cultural upbringings or ethnic backgrounds.
NATO phonetic alphabet
https://en.wikipedia.org/wiki/NATO_phonetic_alphabet
Het spellingsalfabet van de NAVO dient (evenals andere spelalfabetten) om met behulp van spraak met zo min mogelijk fouten een boodschap te kunnen spellen, ook bijvoorbeeld bij een zeer slecht verstaanbare telefoonverbinding. Het door de NAVO gehanteerde spelalfabet is zo opgesteld dat woorden uit het alfabet niet of nauwelijks te verwisselen zijn, ook niet bij communicatie tussen sprekers van verschillende moedertalen; er is zo veel mogelijk gebruikgemaakt van woorden die in alle in de NAVO gangbare talen een eenduidige letterassociatie hebben.
Could a new phonetic alphabet promote world peace?
http://www.bbc.com/news/magazine-21505114
Backers of a universal alphabet say it will make pronunciation easy and foster international understanding. But can phonetic spelling systems really smooth the path to world peace?
The Story Behind the Universal Icons That Came Long Before Emoji
http://gizmodo.com/the-story-behind-the-universal-icons-that-came-long-bef-1592800916
New Alphabet Wim Crouwel
New Alphabet is een persoonlijk, experimenteel project van Crouwel. De letter omarmt de beperkingen van de kathodestraalbuis-technologie, dat werd gebruikt in het fotozet-procedé, en bestaat zodoende alleen uit horizontalen en verticalen. Klassieke letters hebben vaak te lijden onder deze beperkingen. Crouwel wilde een letter ontwerpen voor de moderne technieken. Gezien het feit dat de letters alleen uit horizontalen en verticalen bestaan, zijn sommige letters zeer onconventioneel, andere vrijwel onherkenbaar. Het letterontwerp werd hierdoor dan ook met gemengde gevoelens ontvangen. De meeste letters zijn gebaseerd op een rechthoekig grid van 5 bij 9 units, met op 45 graden afgeronde hoekjes. Er wordt geen onderscheid gemaakt tussen onderkast en kapitalen. Veel vakgenoten vonden het letterontwerp te ver gaan, en hierdoor ontstond er een levendig debat over in o.a. de vakliteratuur. Het experimentele karakter van het ontwerp had mede als doel om een dergelijk debat op gang te brengen.
Historical alphabets
Top 10 Most Spoken Languages In The World
Mandarin 1 billion+
English 508 million
Hindustani 497 million
Spanish 392 million
Russian 277 million
Arabic 246 million
Bengali 211 million
Portuguese 191 million
Malay-Indonesian 159 million
French 159 million
Concept
In kwartaal 10 ben ik (na wat wisselingen tussen onderwerpen) veder gegaan met het kleuren alfabet. Ik wilde een manier ontwikkelen waar er transitie is tussen ons hedendaagse alfabet en het nieuwe alfabet wat ik ontwikkeld heb. Ik wilde deze transitie speels maken en als een soort spel presenteren. Door het op deze wijze aan de toeschouwer te presenteren hoop ik dat de toeschouwer de transitie snapt en er mee speelt.
Code
import gab.opencv.*; import processing.video.*; import java.awt.Rectangle; import SimpleOpenNI.*; SimpleOpenNI context; Capture video; OpenCV opencv;
Capture cam; PImage src;
// <1> Set the range of Hue values for our filter
//ArrayList<Integer> colors;
int maxColors = 10; //aantal kleuren
ArrayList<Contour>[] contours = new ArrayList[maxColors];
int[] hues; int[] sats; int[] colors; char[] karakters = {
‘T’, ‘T’, ‘O’, ‘O’, ‘C’, ‘R’, ‘A’, ‘E’,’=’,’F’
}; int rangeWidth = 12; int saturationMinimum = 50;
PImage[] outputs;
int colorToChange = -1;
void setup() {
String[] cameras = Capture.list();
if (cameras == null) { println(“Failed to retrieve the list of available cameras, will try the default...”); video = new Capture(this, 640, 480); } if (cameras.length == 0) { println(“There are no cameras available for capture.”); exit(); } else
{ println(“Available cameras:”); for (int i = 0; i < cameras.length; i++) { println(cameras[i]); }
// The camera can be initialized directly using an element // from the array returned by list(): video = new Capture(this, cameras[15]); // Or, the settings can be defined based on the text in the list //cam = new Capture(this, 640, 480, “Built-in iSight”, 30);
// Start capturing the images from the camera video.start(); }
//video = new Capture(this, 640, 480); //context = new SimpleOpenNI(this); //if (context.isInit() == false) /*if (video.isInit() == false) { println(“Can’t init SimpleOpenNI, maybe the camera is not connected!”); exit(); return; }*/ //context.enableRGB(); //video.enableRGB();
opencv = new OpenCV(this, 640, 480); for (int x=0; x<maxColors; x++) { contours[x] = new ArrayList<Contour>(); } size(opencv.width + opencv.width/4 + 30, opencv.height, P2D);
// Array for detection colors colors = new int[maxColors]; hues = new int[maxColors]; sats = new int[maxColors];
colors[0] = color(190, 56, 57 ); // letter T //colors[1] = color(235, 81, 77 ); // letter T colors[2] = color(72, 77, 138 ); // letter O //colors[3] = color(177, 85, 137 ); // letter O //colors[4] = color(82, 148, 85 ); // letter C 9 karakters colors[5] = color(223, 126, 81 ); // letter R colors[6] = color(204, 211, 66 ); // letter = colors[7] = color(90, 148, 181 ); // letter S colors[8] = color(120, 85, 134 ); // letter E //colors[9] = color(180, 58, 87 ); // letter E
//colors[0] = color(243, 231, 50); // letter M //colors[1] = color(229, 28, 45); // letter N //colors[2] = color(60, 99, 172); // letter O //colors[0] = color(87, 177, 75); // letter P //colors[1] = color(244, 152, 36); // letter Q //colors[2] = color(117, 79, 155); // letter R //colors[1] = color(244, 152, 36); // letter S //colors[2] = color(117, 79, 155); // letter T //colors[0] = color(243, 231, 50); // letter U //colors[1] = color(229, 28, 45); // letter V //colors[2] = color(60, 99, 172); // letter W //colors[0] = color(87, 177, 75); // letter X //colors[1] = color(244, 152, 36); // letter Y //colors[2] = color(117, 79, 155); // letter Z
for (int x=0; x<maxColors; x++) { hues[x] = int(map(hue(colors[x]), 0, 255, 0, 180)); sats[x] = int(map(saturation(colors[x]), 0, 255, 0, 180)); } outputs = new PImage[maxColors];
video.start();
}
void draw() {
background(150);
if (video.available()) { video.read(); }
//context.update(); //video.update(); // <2> Load the new frame of our movie in to OpenCV //context.rgbImage(); //video.rgbImage(); PImage hueImage = video; hueImage.loadPixels();
for (int x = 0; x < hueImage.width; x++) { for (int y = 0; y < hueImage.height; y++ ) { // Calculate the 1D pixel location int loc = x + y*hueImage.width; // Get the R,G,B values from image float r = red (hueImage.pixels[loc]); float g = green (hueImage.pixels[loc]); float b = blue (hueImage.pixels[loc]); // Change white blance here
r *= 1; g *= 1; b *= 1; // Constrain RGB to between 0-255 r = constrain(r, 0, 255); g = constrain(g, 0, 255); b = constrain(b, 0, 255); // Make a new color and set pixel in the window color c = color(r, g, b); hueImage.pixels[loc] = c; } }
hueImage.updatePixels();
opencv.loadImage(hueImage);
// Tell OpenCV to use color information opencv.useColor(); src = opencv.getSnapshot();
// <3> Tell OpenCV to work in HSV color space. opencv.useColor(HSB);
detectColors();
// Show images image(src, 0, 0); for (int i=0; i<outputs.length; i++) { if (outputs[i] != null) { image(outputs[i], width-src.width/4, i*src.height/4, src.width/4, src.height/4);
noStroke(); fill (0,0,0); rect(src.width, i*src.height/4, 30, src.height/4); } }
// Print text if new color expected //background(0,0,0); textSize(20); //stroke(255); //fill(255);
//if (colorToChange > -1) { //text(“click to change color “ + colorToChange, 10, 25); //} else { //text(“press key [1-4] to select color”, 10, 25); //}
displayContoursBoundingBoxes();
}
void detectColors() {
for (int i=0; i<hues.length; i++) {
if (hues[i] <= 0) continue;
opencv.loadImage(src); opencv.useColor(HSB);
// <4> Copy the Hue channel of our image into // the gray channel, which we process. opencv.setGray(opencv.getH().clone()); int hueToDetect = hues[i]; opencv.inRange(hueToDetect-rangeWidth/2, hueToDetect+rangeWidth/2); PImage hueImage = opencv.getSnapshot();
opencv.setGray(opencv.getS().clone()); opencv.inRange(saturationMinimum, 255);//tweak voor saturatie drempel PImage satImage = opencv.getSnapshot();
//multiply hue image with sat threshhold hueImage.loadPixels(); satImage.loadPixels(); for (int x = 0; x < hueImage.width; x++) { for (int y = 0; y < hueImage.height; y++ ) { // Calculate the 1D pixel location int loc = x + y*hueImage.width; // Get the R,G,B values from image float r = red (hueImage.pixels[loc]); float r2 = red (satImage.pixels[loc]); if ((r==0)||(r2==0)) hueImage.pixels[loc] = color(0, 0, 0); } } hueImage.updatePixels();
// <6> Save the processed image for reference. outputs[i] = hueImage; }
// <7> Find contours in our range image. // Passing ‘true’ sorts them by descending area. for (int x=0; x<maxColors; x++) { if (outputs[x] != null) {
opencv.loadImage(outputs[x]); contours[x] = opencv.findContours(true, true); } }
}
void displayContoursBoundingBoxes() {
for (int x=0; x<maxColors; x++) {
for (int i=0; i<contours[x].size (); i++) {
Contour contour = contours[x].get(i); Rectangle r = contour.getBoundingBox();
if (r.width < 50 || r.height < 50) continue;
stroke(0, 0, 0); noFill(); strokeWeight(2); rect(r.x, r.y, r.width + 5, r.height + 5);
textSize(r.width*0.5); text(karakters[x], r.x + (r.width * 0.5), r.y + (r.height * 0.5)); } }
}
Proces
Voor dit ontwerp moest ik een processing code schrijven die via een camera in staat was om verschillende kleuren van elkaar te kunnen onderscheiden. Dit was echter sneller gezegd dan gedaan. Het coderen van dit onderwerp heeft veel tijd in beslag genomen.
De uitkomst is een kleine installatie waarbij een camera verschillende gekleurde vlakken van elkaar onderscheid en op een computer scherm de vertaling toont.
End Results
Het eind resultaat is een installatie die de transitie laat zien tussen het oude en nieuwe alfabet. Ik heb gekleurde houten schijven gemaakt die door de camera kunnen worden uitgelezen. De bedoeling is dat de toeschouwer speelt met de kleuren en zo het nieuwe alfabet onder de knie kan krijgen. Het eind resultaat kan gezien worden als een soort campagne voor het nieuwe alfabet.