firefly3 | maandag 10 juni 2013 @ 19:26 |
Als je telkens een plaatje liet genereren door gewoon elke pixel een random kleur te geven, zou er toch ooit een foto uit moeten komen? Alle mogelijkheden bestaan, dus in principe zou je ook ooit een keer een "foto" van je tegenkomen waarbij je met een groene t-shirt op een walvis staat, samen met tweelingzussen en twee zonnen aan de hemel?
De mogelijkheden lijken wel eindeloos, maar de kans is denk ik klein dat er een "foto" uit komt. Als op een gegeven moment pc's snel genoeg zijn, kunnen we dan realistische beelden uit de massa plaatjes filteren? Bijvoorbeeld in combinatie met gezichts-herkennings algoritmes, waarbij elk random plaatje waar "iemand" op staat eruit wordt gefilterd?
Ik ben zeer benieuwd wat ons te wachten staat!!
[ Bericht 0% gewijzigd door firefly3 op 10-06-2013 19:33:01 ] |
Molurus | maandag 10 juni 2013 @ 19:33 |
Variant hierop:
http://en.wikipedia.org/wiki/Infinite_monkey_theorem |
pfaf | maandag 10 juni 2013 @ 19:37 |
Bij 1 MP foto en een miljoen kleuren is er al een kans van 1 op een biljoen dat jouw foto eruit komt. Dat valt mij nog best mee eerlijk gezegd.. |
MrDoo | maandag 10 juni 2013 @ 19:38 |
quote: Op maandag 10 juni 2013 19:37 schreef pfaf het volgende:Bij 1 MP foto en een miljoen kleuren is er al een kans van 1 op een biljoen dat jouw foto eruit komt. Dat valt mij nog best mee eerlijk gezegd.. Dan heb je een kans van één op een biljoen dat één pixel hetzelfde is. |
firefly3 | maandag 10 juni 2013 @ 19:41 |
Er zijn veel varianten waar we "tevreden" mee kunnen zijn, en we kunnen wel beginnen met een 64x64 pixel plaatje .. |
MrDoo | maandag 10 juni 2013 @ 19:42 |
quote: Op maandag 10 juni 2013 19:41 schreef firefly3 het volgende:Er zijn veel varianten waar we "tevreden" mee kunnen zijn, en we kunnen wel beginnen met een 64x64 pixel plaatje .. En dan ook maar met zwart wit zeker  |
firefly3 | maandag 10 juni 2013 @ 19:43 |
quote: Zelfs dan is het al gaaf, dan heb je mijn avatar in het zwart wit zeg maar. (60x60 las ik net). |
pfaf | maandag 10 juni 2013 @ 19:43 |
quote: Aaah natuurlijk, ik dacht al dat ik een fout had gemaakt met zo'n belachelijk grote kans. Het is een miljoen tot de macht een miljoen.  |
pfaf | maandag 10 juni 2013 @ 19:47 |
Hoe vaker ik m'n reactie teruglees, hoe achterlijker ik mezelf ga vinden.  |
firefly3 | maandag 10 juni 2013 @ 19:55 |
Euhm net uit zitten rekenen, zelfs een 60x60 plaatje kost al super veel jaren om uit te rekenen / toevallig tegen te komen... |
ATan | maandag 10 juni 2013 @ 19:56 |
quote: Niet te vaak doen dan. |
firefly3 | maandag 10 juni 2013 @ 19:56 |
quote: Boeie |
firefly3 | maandag 10 juni 2013 @ 20:18 |
Misschien is er wel een mogelijkheid om alle random plaatjes met een laag entropy eruit te vissen... |
Saekerhett | maandag 10 juni 2013 @ 21:15 |
Het is gewoon heel simpel, het aantal mogelijke plaatjes is:
kleurdiepteresolutie
Dus stel dat je 'hoge kleuren' hebt (dan is het al goed onderscheidbaar) en een resolutie van 640x480, dan zijn alle mogelijke afbeeldingen 65536(640*480)
Dat is vrij veel zeg maar. |
firefly3 | maandag 10 juni 2013 @ 21:21 |
quote: Op maandag 10 juni 2013 21:15 schreef Saekerhett het volgende:Het is gewoon heel simpel, het aantal mogelijke plaatjes is: kleurdiepte resolutieDus stel dat je 'hoge kleuren' hebt (dan is het al goed onderscheidbaar) en een resolutie van 640x480, dan zijn alle mogelijke afbeeldingen 65536 (640*480)Dat is vrij veel zeg maar. Er zijn ook miljarden leuke foto's mogelijk die we kunnen maken. 60x60 in 10 grijstinten is goed genoeg voor nu Later gaan we wel naar kleur, hogere resoluties en films  |
Saekerhett | maandag 10 juni 2013 @ 21:23 |
quote: Op maandag 10 juni 2013 21:21 schreef firefly3 het volgende:[..] Er zijn ook miljarden leuke foto's mogelijk die we kunnen maken. 60x60 in 10 grijstinten is goed genoeg voor nu  Later gaan we wel naar kleur, hogere resoluties en films Alle films die ooit gemaakt zijn en die ooit gemaakt gaan worden (!) zit al in 65536(640*480). |
devzero | maandag 10 juni 2013 @ 21:26 |
Fotos? We willen film. |
Molurus | maandag 10 juni 2013 @ 21:28 |
quote: Waar je denk ik veel sneller resultaat mee bereikt is niet volledig random plaatjes, maar random veranderingen in pixels, en dan doorgaan met het plaatje dat 'het meeste ergens op lijkt'.
SPOILER Dit mechanisme staat beter bekend als 'evolutie'. 
|
firefly3 | maandag 10 juni 2013 @ 21:57 |
quote: Op maandag 10 juni 2013 21:28 schreef Molurus het volgende:[..] Waar je denk ik veel sneller resultaat mee bereikt is niet volledig random plaatjes, maar random veranderingen in pixels, en dan doorgaan met het plaatje dat 'het meeste ergens op lijkt'. SPOILER Dit mechanisme staat beter bekend als 'evolutie'. 
Het gevaar is dat we teveel binnen onze eigen regels beginnen te "schilderen". |
Molurus | maandag 10 juni 2013 @ 22:01 |
quote: Om je geheel random plaatjes te selecteren zul je exact hetzelfde soort patroonherkenning moeten toepassen. Als dat risico er is dan is dat er in beide scenario's evenveel. |
Nattekat | maandag 10 juni 2013 @ 22:03 |
Waar nu geen rekening mee wordt gehouden is dat er best kleine variaties kunnen voorkomen, een pixels als #FF0000 (rood) kan best voorkomen als #EE1213 (Beetje donkerder). En een compleet foute pixel is ook geen ramp voor het totaalplaatje, zolang het maar niet te vaak gebeurt. |
Asphias | maandag 10 juni 2013 @ 23:50 |
tja, de vraag is natuurlijk bij welke resolutie we nog foto's kunnen herkennen, dat kan volgens mij best laag zijn. even wat voorbeeltjes: een appel met resolutie 540x540, diezelfde met 34x34, en nog eens met 17x17



17x17 begint erg twijfelachtig te worden, dus laten we zeggen dat 34x34 het minimum is.
we zouden het waarschijnljik met 10 verschillende kleuren ook nog net kunnen zien, dus dan kom je uit op 1034x34, oftewel 101156, oftewel,
SPOILER 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 zoveel verschillende plaatjes kan je dan al maken. sure, het is mogelijk, maar even ter vergelijking, als je elke seconde vanaf de oerknal tot nu één plaatje zou bekijken, dan zit je pas op 10^17 plaatjes, nog geen fractie van het totaal aantal plaatjes wat je kan maken.
het kán dus, maar het is zwaar onrealistisch dat 't gebeurt. |
firefly3 | dinsdag 11 juni 2013 @ 08:02 |
quote: Op maandag 10 juni 2013 23:50 schreef Asphias het volgende:tja, de vraag is natuurlijk bij welke resolutie we nog foto's kunnen herkennen, dat kan volgens mij best laag zijn. even wat voorbeeltjes: een appel met resolutie 540x540, diezelfde met 34x34, en nog eens met 17x17 [ afbeelding ] [ afbeelding ] [ afbeelding ] 17x17 begint erg twijfelachtig te worden, dus laten we zeggen dat 34x34 het minimum is. we zouden het waarschijnljik met 10 verschillende kleuren ook nog net kunnen zien, dus dan kom je uit op 10 34x34, oftewel 10 1156, oftewel, SPOILER 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
zoveel verschillende plaatjes kan je dan al maken. sure, het is mogelijk, maar even ter vergelijking, als je elke seconde vanaf de oerknal tot nu één plaatje zou bekijken, dan zit je pas op 10^17 plaatjes, nog geen fractie van het totaal aantal plaatjes wat je kan maken. het kán dus, maar het is zwaar onrealistisch dat 't gebeurt. Zul je net zien dat op plaatje 1 precies die appel tevoorschijn komt :p |
Juup© | dinsdag 11 juni 2013 @ 08:05 |
quote: Ook in het Nederlands verkrijgbaar: http://nl.wikipedia.org/w(...)ndeloos_typende_apen
 |
ludicrous_monk | dinsdag 11 juni 2013 @ 13:20 |
Het is vele malen efficiënter om de rekenkracht die je voor de scoring van het plaatje zou gebruiken in te zetten voor het direct renderen van zo'n plaatje. |
ludicrous_monk | dinsdag 11 juni 2013 @ 13:23 |
quote: Op maandag 10 juni 2013 21:28 schreef Molurus het volgende:[..] Waar je denk ik veel sneller resultaat mee bereikt is niet volledig random plaatjes, maar random veranderingen in pixels, en dan doorgaan met het plaatje dat 'het meeste ergens op lijkt'. SPOILER Dit mechanisme staat beter bekend als 'evolutie'. 
Ik heb zelf ooit een programma dat dit deed door op basis van een "chromosoom" een plaatje te tekenen met gekleurde ellipsen. Hij muteerde het chromosoom steeds een aantal maal en selecteerde het chromosoom waarvan het plaatje het meest op een door mij ingegeven foto leek. Maar het duurde minstens een dag om met een snelle computer iets te krijgen dat op het oog enigszins vergelijkbaar was. |
firefly3 | woensdag 12 juni 2013 @ 07:51 |
Dan bouw je een kopie. In principe wil ik geen kopie maar iets anders. |
firefly3 | donderdag 13 juni 2013 @ 07:24 |
Ik heb een random image generator gemaakt, waarbij het telkens automatisch checkt of het nieuwe plaatje minder entropy bevat dan de vorige. Als dat zo is, laat ik dat plaatje zien.
Na een korte tijd zie je weinig plaatjes die nog vervangen worden. Even kijken of ik later nog dingen kan verbeteren, maar zo ziet het er nu uit, je ziet heel vaagjes een soort lijn achtige structuren in de soep van willekeurigheid.
 |
FastFox91 | donderdag 13 juni 2013 @ 09:03 |
@firefly3 Kijk eens naar Feature extraction. Als je weet wat de features zijn van een foto met een gezicht en de waardes daarvan, kan je daar naartoe werken met je random image genenerator. |
firefly3 | donderdag 13 juni 2013 @ 17:25 |
quote: Thx, wel creepy als je de volgende ochtend wakker wordt en het plaatje dat het meest op een gezicht lijkt staat open |
meth1745 | vrijdag 14 juni 2013 @ 04:37 |
quote: Op donderdag 13 juni 2013 07:24 schreef firefly3 het volgende:Ik heb een random image generator gemaakt, waarbij het telkens automatisch checkt of het nieuwe plaatje minder entropy bevat dan de vorige. Als dat zo is, laat ik dat plaatje zien. Na een korte tijd zie je weinig plaatjes die nog vervangen worden. Even kijken of ik later nog dingen kan verbeteren, maar zo ziet het er nu uit, je ziet heel vaagjes een soort lijn achtige structuren in de soep van willekeurigheid. [ afbeelding ] Steeds een nieuw random pic? Waarom niet op laatste resultaat baseren voor de volgende? Verander X aantal pixels, if better then switch, repeat. Ook niet ideaal, eens je in een lokaal minimum komt raak je niet verder.. Alhoewel, hoe bepaal je de entropie éénduidig? is entropie van 10*10 rood + 10*10 blauw groter dan 15*10 rood + 5*10 blauw? je bereikt altijd een vlak van één kleur neem ik aan..
BTW: beter dan stinkende apen: http://en.wikipedia.org/wiki/The_Library_of_Babel  |
firefly3 | vrijdag 14 juni 2013 @ 08:06 |
De kans dat het een vlak met 1 kleur genereerd is misschien kleiner dan een plaatje met een gebouw erop. Ik zat ook te denken om iets te doen telkens met het laatste resultaat. Dit gaat denk ik best gaaf worden ^^ |
Deshain | vrijdag 14 juni 2013 @ 09:14 |
quote: Op vrijdag 14 juni 2013 08:06 schreef firefly3 het volgende:De kans dat het een vlak met 1 kleur genereerd is misschien kleiner dan een plaatje met een gebouw erop. Ik zat ook te denken om iets te doen telkens met het laatste resultaat. Dit gaat denk ik best gaaf worden ^^ De kans dat alle pixels één vooraf vastgestelde kleur zijn is net zo groot dat je een 1:1 replica krijgt van een vooraf vastgestelde afbeelding. De kans dat alle pixels één willekeurige kleur zijn is n x zo groot dan dat je een 1:1 replica krijgt van een vooraf vastgestelde afbeelding waarbij n het aantal mogelijke kleuren is.
Om de kans op een plaatje waarin een gebouw herkenbaar is te bepalen zal je eerst moeten definiëren wát als een gebouw herkenbaar is en dat lijkt me vrijwel onmogelijk om in te voeren / te berekenen.
Even een drietal plaatjes in 60x60 pixels:



Gezichtsherkenningssoftware opereert in dat kader in een veel strakkere definitie van wat wel en wat niet als gezicht te herkennen is doordat de verhoudingen redelijk af te kaderen zijn, maw de parameters zijn veel strakker te definiëren dan de mogelijke variatie in gebouwontwerpen en de herkenbaarheid hiervan.

Dit is voor mij dé reden om de mogelijkheid van het bestaan van een God (beter gezegd een schepper) te erkennen, spontane creatie lijkt op deze manier zó onwaarschijnlijk ik het niet kan negeren. |
pfaf | vrijdag 14 juni 2013 @ 15:25 |
Wát?  |
Bosbeetle | vrijdag 14 juni 2013 @ 16:58 |
Je kunt je plaatjes ook wat meer richting geven door evolutie..(wat hier eigenlijk ook al gesuggereerd werd) Je kunt sowieso het landschap verkleinen door niet elke mogelijke kleur te doen maar gewoon precies de kleur van het beeld waar je uit wil komen... (gewoon het aantal pixels van een bepaalde kleur tellen) dan wordt de kans al wat groter maar ben je nog lang bezig... Wat ook erg belangrijk wordt is hoe random iets is... de meeste computer gegenereerd random beelden zijn niet random maar juist heel homogeen verdeeld....
Er zijn heel veel van dit soort studies gedaan... sommige met best leuke resultaten. Het zit in het straatje van de artifical evolution of art.
Heb het zelf ooit met muziek geprobeerd maar daar moet ik nog veel meer aan knutselen. De moeilijkheid bij dit soort dingen ligt in de selectie. |
devzero | vrijdag 14 juni 2013 @ 17:18 |
Evolutie is leuk natuurlijk, met iedere iteratie 1 pixel veranderen en dan het nieuwe plaatje accepteren of weigeren (ala MCMC). Maar wat voor fitness functie wil je gaan gebruiken? Entropy lijkt me ook niet echt een goede maatstaf. |
firefly3 | vrijdag 14 juni 2013 @ 18:14 |
Duizend chinezen inhuren die de fitness bepalen :p |
devzero | vrijdag 14 juni 2013 @ 23:04 |
quote: 1 per pixel |
Bosbeetle | maandag 17 juni 2013 @ 09:21 |
quote:
dat fitness bepalen is ook de bottleneck bij mijn muziek project  |
Bosbeetle | maandag 17 juni 2013 @ 10:43 |
Ik vind trouwens die evolutie experimenten waarbij ze proberen naar een bepaalde afbeelding toe te komen een stuk minder interessant dan experimenten waarbij ze iets nieuws estetisch willen  |
Maanvis | maandag 17 juni 2013 @ 11:54 |
quote: TIP: Ons oor is gevoelig voor harmonische klanken en ritme. Dus als je daarop controleert kan je fitness bepalen . |
Bosbeetle | maandag 17 juni 2013 @ 12:00 |
quote: Op maandag 17 juni 2013 11:54 schreef Maanvis het volgende:[..] TIP: Ons oor is gevoelig voor harmonische klanken en ritme. Dus als je daarop controleert kan je fitness bepalen  . ja maar ik wil geen saaie muziek alleen maar harmonisch ik wil ook dissonant en atonaal in mijn muziek 
maar goeie tip hoor  |
Maanvis | maandag 17 juni 2013 @ 12:06 |
quote: Op maandag 17 juni 2013 12:00 schreef Bosbeetle het volgende:[..] ja maar ik wil geen saaie muziek  alleen maar harmonisch  ik wil ook dissonant en atonaal in mijn muziek  maar goeie tip hoor  Volgens mij had vsauce er ooit een itempje over.
En dit filmpje is ook wel interessant om te kijken dan:
|
Wespensteek | maandag 17 juni 2013 @ 14:48 |
Proef op de som genomen. Foto van een wit vlak, programma met witte achtergrond en het was meteen raak, voordat de eerste pixel was gemaakt was de foto al nagemaakt. |
finsdefis | maandag 17 juni 2013 @ 19:02 |
quote: LOL
quote: In 2003, lecturers and students from the University of Plymouth MediaLab Arts course used a £2,000 grant from the Arts Council to study the literary output of real monkeys. They left a computer keyboard in the enclosure of six Celebes Crested Macaques in Paignton Zoo in Devon in England for a month, with a radio link to broadcast the results on a website.[10]
Not only did the monkeys produce nothing but five pages[11] consisting largely of the letter S, the lead male began by bashing the keyboard with a stone, and the monkeys continued by urinating and defecating on it. Phillips said that the artist-funded project was primarily performance art, and they had learned "an awful lot" from it. He concluded that monkeys "are not random generators. They're more complex than that. ... They were quite interested in the screen, and they saw that when they typed a letter, something happened. There was a level of intention there."[10][12] Natuurlijk staat de aap symbool voor een random text generator, maar toch. |
Bosbeetle | maandag 17 juni 2013 @ 19:18 |
quote: Op maandag 17 juni 2013 14:48 schreef Wespensteek het volgende:Proef op de som genomen. Foto van een wit vlak, programma met witte achtergrond en het was meteen raak, voordat de eerste pixel was gemaakt was de foto al nagemaakt. Een wit beginvlak is niet random hè, zou het wel kunnen zijn als het niet altijd een wit vlak is  |
Molurus | maandag 17 juni 2013 @ 19:19 |
quote: Een grijs vlak is dan op zich wel een plausibele uitkomst, als je resolutie maar hoog genoeg is.  |
Bosbeetle | maandag 17 juni 2013 @ 19:20 |
quote: Is dat zo? Werken je ogen zo 'middelend' ? |
Molurus | maandag 17 juni 2013 @ 19:23 |
quote: Yep, zo werken oude tv's bijvoorbeeld ook. Die kennen op pixelniveau maar 3 kleuren, maar op grotere schaal worden die door onze eigen perceptie uitgemiddeld.
Als je bijvoorbeeld een groot vlak afwisselend vult met blauwe en gele pixels zal het vlak er op een afstand voor ons groen uitzien. |
Bosbeetle | maandag 17 juni 2013 @ 19:26 |
quote: Op maandag 17 juni 2013 19:23 schreef Molurus het volgende:[..] Yep, zo werken oude tv's bijvoorbeeld ook. Die kennen op pixelniveau maar 3 kleuren, maar op grotere schaal worden die door onze eigen perceptie uitgemiddeld. Als je bijvoorbeeld een groot vlak afwisselend vult met blauwe en gele pixels zal het vlak er op een afstand voor ons groen uitzien. Ohja tuurlijk feitelijk doen we dat natuurlijk ook al op ons scherm. |
Molurus | maandag 17 juni 2013 @ 19:30 |
quote: Wel extra lastig voor een eventuele fitness routine natuurlijk.  |
firefly3 | maandag 17 juni 2013 @ 19:39 |

Kom nog niet echt verder. Naja, als je orde uit chaos kan creeeren heb je ook zo'n beetje het antwoord van het universum gevonden. (Of in de vorm van een soort automaton) |
Molurus | maandag 17 juni 2013 @ 19:43 |
quote: Op maandag 17 juni 2013 19:39 schreef firefly3 het volgende:[ afbeelding ] Kom nog niet echt verder. Naja, als je orde uit chaos kan creeeren heb je ook zo'n beetje het antwoord van het universum gevonden. (Of in de vorm van een soort automaton) Dat heeft best wel wat weg van de CMB.  |
firefly3 | maandag 17 juni 2013 @ 19:46 |
quote: Wat is CMB? |
Molurus | maandag 17 juni 2013 @ 19:50 |
quote: Cosmic Microwave Background, ofwel kosmische achtergrondstraling.
Een vrijwel homogene achtergrondstraling die net niet homogeen is. De 'bubbels' zijn precies zo groot als de tijd die licht erover doet om zich te verplaatsen vanaf de big bang tot het moment dat het universum doorzichtig werd. De maat van die bubbels is een belangrijke clue in het bepalen van de geometrie van het universum.

PS: een paar procent van de ruis die je op oude tv's zag als het programma was afgelopen bestaat uit diezelfde achtergrondstraling. |
firefly3 | maandag 17 juni 2013 @ 19:54 |
quote: Op maandag 17 juni 2013 19:50 schreef Molurus het volgende:[..] Cosmic Microwave Background, ofwel kosmische achtergrondstraling. Een vrijwel homogene achtergrondstraling die net niet homogeen is. De 'bubbels' zijn precies zo groot als de tijd die licht erover doet om zich te verplaatsen vanaf de big bang tot het moment dat het universum doorzichtig werd. De maat van die bubbels is een belangrijke clue in het bepalen van de geometrie van het universum. [ afbeelding ] PS: een paar procent van de ruis die je op oude tv's zag als het programma was afgelopen bestaat uit diezelfde achtergrondstraling. Thx voor de info, ik wist slechts gobaal wat deze achtergrondstraling was. |
Pietverdriet | maandag 17 juni 2013 @ 20:03 |
Volgens mij moet je niet random genereren, maar chaotisch. http://nl.wikipedia.org/wiki/Chaostheorie want dat is iets fundamenteel anders http://www.math.tamu.edu/(...)/chaos_vs_random.pdf En de voortgang evolutionaire stappen laten maken. |
firefly3 | maandag 24 juni 2013 @ 18:19 |
quote: Kan je het vertalen¿ |
Pietverdriet | maandag 24 juni 2013 @ 18:24 |
quote: Heb je de links begrepen? |
devzero | maandag 24 juni 2013 @ 19:09 |
Ik ben wel benieuwd hoe je het plaatje als dynamisch systeem wil zien? |
firefly3 | dinsdag 25 juni 2013 @ 07:53 |
quote: Niet helemaal |
Pietverdriet | dinsdag 25 juni 2013 @ 08:01 |
quote: In random zit geen structuur, in chaotisch wel, hoewel niet voorspelbaar |
firefly3 | dinsdag 25 juni 2013 @ 08:41 |
quote: Met een chaotisch systeem volg je toch een formule? |
Pietverdriet | dinsdag 25 juni 2013 @ 08:45 |
quote: Ik denk dat je fractals en chaotische systemen door elkaar haalt. Een chaotisch systeem is bv hoe wolken zich vormen en bewegen. Als je wolken filmt en in timelaps bekijkt zie je dat dit waanzinnig complex is, niet voorspelbaar, maar toch een structuur heeft. Wolken zijn niet random. |
pfaf | dinsdag 25 juni 2013 @ 10:39 |
Maar het weer hangt af van de vergelijkingen die de voorspellingen doen. De afhankelijkheid van de beginoplossing is wat een systeem chaotisch maakt. Ik zie ook niet hoe dit probleem iets met chaos te maken heeft. |
ludicrous_monk | dinsdag 25 juni 2013 @ 22:25 |
Misschien een idee om een neuraal netwerk te trainen met mooie foto's en dat vervolgens los te laten op plaatjes uit "chromosoom" in een genetisch algoritme, en de output van het netwerk te gebruiken als fitness-functie voor het genetisch algoritme?
Vermoedelijk heb je wel een extreem complex netwerk nodig en duurt het jaren voordat je een goeie foto hebt, maargoed, je kan het proberen. |
firefly3 | woensdag 26 juni 2013 @ 22:03 |
quote: Op dinsdag 25 juni 2013 22:25 schreef ludicrous_monk het volgende:Misschien een idee om een neuraal netwerk te trainen met mooie foto's en dat vervolgens los te laten op plaatjes uit "chromosoom" in een genetisch algoritme, en de output van het netwerk te gebruiken als fitness-functie voor het genetisch algoritme? Vermoedelijk heb je wel een extreem complex netwerk nodig en duurt het jaren voordat je een goeie foto hebt, maargoed, je kan het proberen. Ik wil niet dat het een boom wordt omdat ik zeg dat het een boom moet worden... |
ludicrous_monk | donderdag 27 juni 2013 @ 12:52 |
quote: Je wil gewoon iets echt randoms hebben? Hoe weet de computer dan of jij het er leuk uit vind zien? |
firefly3 | donderdag 27 juni 2013 @ 19:11 |
quote: Ik wil graag kijken naar de hoeveelheid entropy. Deze twee plaatjes zijn zeer verschillend, toch hebben ze een overeenkomst:
Er staan hele groepen pixels bij elkaar die dezelfde kleur hebben. Met dit principe kreeg ik het zwart/grijs/wit plaatje van hierboven.
Iemand nog meer ideeen?

 |
FastFox91 | donderdag 27 juni 2013 @ 19:20 |
Waarom wil je naar de entropie kijken? Je hebt zelf al aangetoond dat dat niet gaat werken. Idee van ludicrous_monk is best goed. |
firefly3 | vrijdag 28 juni 2013 @ 08:21 |
quote: Op donderdag 27 juni 2013 19:20 schreef FastFox91 het volgende:Waarom wil je naar de entropie kijken? Je hebt zelf al aangetoond dat dat niet gaat werken. Idee van ludicrous_monk is best goed. Hoe meer plaatjes je hebt, hoe meer het neurale netwerk op een grijs vlak getraint zal worden. |
ludicrous_monk | vrijdag 28 juni 2013 @ 12:55 |
quote: Op donderdag 27 juni 2013 19:11 schreef firefly3 het volgende:[..] Ik wil graag kijken naar de hoeveelheid entropy. Deze twee plaatjes zijn zeer verschillend, toch hebben ze een overeenkomst: Er staan hele groepen pixels bij elkaar die dezelfde kleur hebben. Met dit principe kreeg ik het zwart/grijs/wit plaatje van hierboven. Iemand nog meer ideeen? [ afbeelding ] [ afbeelding ] Het probleem van het woord "entropie" is dat het niet duidelijk is hoe die in dit geval precies gedefinieerd is. Je hebt wel een idee wat het zou kunnen zijn, maar een computer zal dat preciezer moeten weten.
Nog een idee is dat beide plaatjes "fractale" patronen bevatten. Ze hebben een soort structuur op die enigszins gelijkend is op verschillende ruimtelijke frequenties. Misschien ben je dus op zoek naar een soort superfractaalgenerator, die alle mogelijke plaatjes zou kunnen genereren. In het geval van wolken is al bekend dat je die uitstekend kan genereren uit fractal noise (hier is heel veel over te vinden op het internet).
Het enige probleem is dat foto's niet per se op elk niveau "zelfgelijkenis" hebben, dus het zijn in die zin ook weer geen fractalen. Toch zie je in beide foto's hetzelfde patroon min of meer terugkomen op verschillende plaatsen in de foto. |
ludicrous_monk | vrijdag 28 juni 2013 @ 12:57 |
quote: Dit is niet per se waar. Dat hangt af van de architectuur van het neurale netwerk. De naieve benadering om een multilayer perceptron te gebruiken waar je alle pixels van een plaatje in gooit werkt hier zeker niet, dan krijg je inderdaad dat het nadert naar iets dat lijkt op een grijs vlak.
Ik denk eerder aan een soort hopfield netwerk, of in ieder geval een netwerk met veel feedback. In die vorm kan het netwerk meer abstracties maken zoals rotaties, schaling, en translatie. |
devzero | vrijdag 28 juni 2013 @ 17:05 |
quote: Op vrijdag 28 juni 2013 12:55 schreef ludicrous_monk het volgende:Het probleem van het woord "entropie" is dat het niet duidelijk is hoe die in dit geval precies gedefinieerd is. Je hebt wel een idee wat het zou kunnen zijn, maar een computer zal dat preciezer moeten weten. De entropie van een plaatje kun je zo berekenen (Shannon) en dan krijg je een nummer. De vraag is, wat betekend dat nummer. Met een simple python scriptje krijg ik een erg "laag" entropie getal bij dit (begrijpelijk want maar 2 kleuren dus de kans dat een pixel een van die kleuren is, is erg hoog)

En een vergelijkbare entropie als de 2 bovenstaande plaatjes (wolken en new york) bij deze walvis:
 Dus wat zegt entropie in dat geval?
quote: Nog een idee is dat beide plaatjes "fractale" patronen bevatten. Ze hebben een soort structuur op die enigszins gelijkend is op verschillende ruimtelijke frequenties. Misschien
Laten we aannemen dat TS een oneindig aantal plaatjes kan genereren, maar om uit die verzameling de subset van "fotoos" te halen heb je meer nodig dan 1 of 2 eigenschappen, maar een vector van misschien wel 100 eigenschappen waarvan entropie er 1 is. Een neuraal network om de gewichten van die vector te vinden is waarschijnlijk de beste manier. |
Pietverdriet | vrijdag 28 juni 2013 @ 17:29 |
quote: Op vrijdag 28 juni 2013 17:05 schreef devzero het volgende:[..] De entropie van een plaatje kun je zo berekenen (Shannon) en dan krijg je een nummer. De vraag is, wat betekend dat nummer. Met een simple python scriptje krijg ik een erg "laag" entropie getal bij dit (begrijpelijk want maar 2 kleuren dus de kans dat een pixel een van die kleuren is, is erg hoog) [ afbeelding ] En een vergelijkbare entropie als de 2 bovenstaande plaatjes (wolken en new york) bij deze walvis: [ afbeelding ] Dus wat zegt entropie in dat geval? [..] Laten we aannemen dat TS een oneindig aantal plaatjes kan genereren, maar om uit die verzameling de subset van "fotoos" te halen heb je meer nodig dan 1 of 2 eigenschappen, maar een vector van misschien wel 100 eigenschappen waarvan entropie er 1 is. Een neuraal network om de gewichten van die vector te vinden is waarschijnlijk de beste manier. Je eerste plaatje, zwart wit, pixel kan twee toestanden hebben, Het plaatje is bij 1000 bij 750 pixels groot, 750.000 pixels 2750.000 mogelijkheden voor een plaatje van deze grote en maar 2 toestanden per pixel diep. Een foto van dergelijke grote heeft miljoenen mogelijkheden per pixel. Zeg 32 miljoen, 32.000.000750.000 mogelijkheden. Bij een nog geen megapixel
Dan vraag ik me af, hoe groot is het aantal mogelijke fotos, of wat wij zien als foto ten opzichte van het aantal met een structuur, en die versus gewoon ruis. |
firefly3 | vrijdag 28 juni 2013 @ 18:28 |
Gaaf dat jullie mee denken! Mocht dit ooit lukken is het echt geweldig. Misschien moeten we wel in meerdere dimensies denken voordat het omgezet kan worden, dat er misschien een verborgen algemene eigenschap is, waarbij de pixelafstand van naburige pixels niet 1 is maar anders behandelt moet worden. |
devzero | vrijdag 28 juni 2013 @ 20:42 |
quote: Op vrijdag 28 juni 2013 17:29 schreef Pietverdriet het volgende:Dan vraag ik me af, hoe groot is het aantal mogelijke fotos, of wat wij zien als foto ten opzichte van het aantal met een structuur, en die versus gewoon ruis. Heeeeel erg groot. Ik denk dat dit ook meer een theoretische "spel" is dan een werkelijke implementatie. Het aap-typt-shakespeare probleem is inmiddels opgelost. Maar dat is natuurlijk een stuk makkelijker want je hebt maar een beperkt aantal oplossingen (al het werk van shakespeare) en er is een duidelijk verschil tussen goed ("the") en fout ("thf") terwijl een klein contrast verschil in een pixel nog steeds een goede foto kan geven. |
firefly3 | maandag 1 juli 2013 @ 08:21 |
Hoe herkend een mens een foto? Ik dacht eraan om te zoeken naar vlakken, maar dat zegt nog totaal niets over realisme. |
Pietverdriet | maandag 1 juli 2013 @ 10:07 |
quote: Op maandag 1 juli 2013 08:21 schreef firefly3 het volgende:Hoe herkend een mens een foto? Ik dacht eraan om te zoeken naar vlakken, maar dat zegt nog totaal niets over realisme. Onze hersenen zijn neurale netwerken https://nl.wikipedia.org/wiki/Neuraal_netwerk Dat kan je ook programmeren en gebruiken voor foto herkenning http://stats.stackexchang(...)ork-recognise-images |
Bosbeetle | maandag 1 juli 2013 @ 17:13 |
Een optie is om eens de fourier transform van plaatjes te analyseren, wij mensen herkennen vaak patronen en patronen komen naar voren in de fourier space van een beeld. Misschien is dat een leuke extra selectie methode. |
pfaf | maandag 1 juli 2013 @ 18:10 |
Goed idee! Ik denk dat je met een selectie op FFT gefilterde afbeeldingen veel ruis en slechte afbeeldigen kwijt raakt. |
firefly3 | maandag 1 juli 2013 @ 18:48 |
quote: Op maandag 1 juli 2013 17:13 schreef Bosbeetle het volgende:Een optie is om eens de fourier transform van plaatjes te analyseren, wij mensen herkennen vaak patronen en patronen komen naar voren in de fourier space van een beeld. Misschien is dat een leuke extra selectie methode. Ingewikkeld, het houdt ook rekening met het feit dat een vorm geroteerd en geschaald kan zijn? En ook dat het van 3D naar 2D getransformeerd moet worden... |
Bosbeetle | maandag 1 juli 2013 @ 20:14 |
quote: Op maandag 1 juli 2013 18:48 schreef firefly3 het volgende:[..] Ingewikkeld, het houdt ook rekening met het feit dat een vorm geroteerd en geschaald kan zijn? En ook dat het van 3D naar 2D getransformeerd moet worden... Opzich is kijken naar de entropie van de fourier transform van een plaatje niet veel ingewikkelder dan kijken naar de entropie van het plaatje zelf. Je selecteert dan voor patronen en grote kans dat patronen interessanter zijn dan geen patronen  |
firefly3 | maandag 1 juli 2013 @ 20:52 |
quote: Op maandag 1 juli 2013 20:14 schreef Bosbeetle het volgende:[..] Opzich is kijken naar de entropie van de fourier transform van een plaatje niet veel ingewikkelder dan kijken naar de entropie van het plaatje zelf. Je selecteert dan voor patronen en grote kans dat patronen interessanter zijn dan geen patronen  (Ben even kritisch), trainen we dan niet gewoon naar dit soort plaatjes toe? (De "beste fourier transform vorm" is de sinus zelf?...)
 |
firefly3 | maandag 1 juli 2013 @ 20:54 |
dubbel |
Bosbeetle | maandag 1 juli 2013 @ 20:55 |
quote: Nee hoor.. en je mag ook wel heel wat geluk hebben als je zulke plaatjes genereert. |
firefly3 | maandag 1 juli 2013 @ 20:55 |
quote: Ok  |
firefly3 | maandag 1 juli 2013 @ 20:59 |
quote: Ook zeer interessant! |
ludicrous_monk | maandag 1 juli 2013 @ 21:14 |
quote: Op maandag 1 juli 2013 20:14 schreef Bosbeetle het volgende:[..] Opzich is kijken naar de entropie van de fourier transform van een plaatje niet veel ingewikkelder dan kijken naar de entropie van het plaatje zelf. Je selecteert dan voor patronen en grote kans dat patronen interessanter zijn dan geen patronen  Als je eisen stelt aan het frequentiedomein ben je al een hoop entropie en ruisplaatjes kwijt denk ik. Weer goede extra inputs voor een neuraal selectienetwerk . Ik denk dat foto's zeer weinig hoogfrequentie inhoud bevatten, en dat je dat er met een FT goed uit zou kunnen halen. |
ludicrous_monk | maandag 1 juli 2013 @ 21:17 |
Maar wat is nou de beste random plaatjesgenerator voordat een NN de plaatjes selecteert? Het moet iets zijn dat met een relatief eenvoudig algoritme sowieso al vaak (toch zeker wel >0.01% van de gevallen?) plaatjes genereert die in de buurt komen van een foto. Anders wordt het hopeloos inefficiënt. |
ludicrous_monk | maandag 1 juli 2013 @ 21:19 |
Nieuwe vraag: mogen de random plaatjes bestaan uit random gegenereerde driehoeken die vervolgens 3D gerenderd worden (met random gegenereerde belichting, random materialen, random effecten)? Dan is de kans dat je een foto benadert al veel hoger. |
firefly3 | maandag 1 juli 2013 @ 21:31 |
quote: Op maandag 1 juli 2013 21:19 schreef ludicrous_monk het volgende:Nieuwe vraag: mogen de random plaatjes bestaan uit random gegenereerde driehoeken die vervolgens 3D gerenderd worden (met random gegenereerde belichting, random materialen, random effecten)? Dan is de kans dat je een foto benadert al veel hoger. Goeie vraag, en hoe onderscheid je zoiets van werkelijkheid (makkelijk te zien voor de mens, maar voor de pc dus moeilijk uit te leggen..) |
Jottum86 | zondag 7 juli 2013 @ 22:31 |
U zou ook een archief met foto's kunnen pakken (zeg >1M) en deze hier stukken uit random mixen, mengen en transformeren. Zo kun je tot random allerlei combinaties komen, zonder veel ruis te moeten introduceren. |
firefly3 | maandag 8 juli 2013 @ 08:19 |
quote: Op zondag 7 juli 2013 22:31 schreef Jottum86 het volgende:U zou ook een archief met foto's kunnen pakken (zeg >1M) en deze hier stukken uit random mixen, mengen en transformeren. Zo kun je tot random allerlei combinaties komen, zonder veel ruis te moeten introduceren. Ik wil graag iets uit niets maken, niet iets uit iets  |
firefly3 | vrijdag 12 juli 2013 @ 08:22 |
Zelfs als ik het blauwste willekeurig plaatje telkens bewaar, zie ik vrij snel dat de boel al "vastloopt" zonder een zichtbaar resultaat. Patronen en dergelijke zullen helemaal zeldzaam zijn. Ik zat te denken aan een nieuwe aanpak: het willekeurig genereren van golven met kleuren, verschillende amplitudes, frequenties, schalen en richtingen. |
firefly3 | vrijdag 12 juli 2013 @ 19:24 |
Even een testje, ik denk dat je met golven alles kunt maken. Nu alleen blauw een willekeurige frequency gegeven.

Mijn theorie erachter is dat als je golven (en golven op golven) verschillende richtingen op "schiet" dat je iets waanzinnigs kunt krijgen. Als je die golven ook nog eens de diepte in schiet, dat je dan ook nog eens een wereld met perspectief kunt creeren. De witte buik van de walvis is niets anders dan een sinus dat even tevoorschijn komt.

Testje 2, 3 golven in dezelfde richting.

t3


Binnenkort ga ik golven op golven maken en wat aan de vorm doen.
[ Bericht 12% gewijzigd door firefly3 op 12-07-2013 20:17:06 ] |
pfaf | zondag 14 juli 2013 @ 11:49 |
Dus toch fft...  |
firefly3 | maandag 15 juli 2013 @ 07:08 |
quote:  |
firefly3 | maandag 15 juli 2013 @ 07:10 |


 |
Bosbeetle | maandag 15 juli 2013 @ 10:48 |
Cool ik zou met iets hogere frequenties gaan werken  quote: Verbazingwekkend eigenlijk dat elk plaatje zo goed in ferquenties op te breken is  |
123hopsaflops | maandag 15 juli 2013 @ 10:50 |
Er zit iig een stuk meer structuur in! |
firefly3 | woensdag 17 juli 2013 @ 20:21 |

Hier hebben jullie de code als jullie zelf ermee willen spelen of gewoon plaatjes willen genereren. (Je hoeft alleen de code te kopieren naar kladblok en te hernoemen naar .html). Daarna alleen op de reset knop klikken om een nieuw plaatje te genereren. Het opstarten kan 15 seconden duren overigens.
SPOILER <html> <title>Random image</title>
<canvas id="view" width="500", height="500"> Canvas </canvas>
<body bgcolor = "#101010"> </body>
<script type="text/javascript">
var counter = 0;
element = document.getElementById("view"); c = element.getContext("2d");
width = element.width; height = element.height;
imageData = c.createImageData(width, height);
var red = new Array(width); var green = new Array(width); var blue = new Array(width);
var redT= new Array(width); var greenT = new Array(width); var blueT = new Array(width);
var ent = new Array(width);
var entropy = 10000000000; var entropT = 10000000000;
totalold = 0; totalnew = 0;
for (i = 0; i < width; i++) { red[i] = new Array(height); green[i] = new Array(height); blue[i] = new Array(height);
redT[i] = new Array(height); greenT[i] = new Array(height); blueT[i] = new Array(height);
ent[i] = new Array(height); for (j = 0; j < height; j++) { red[i][j] = 0; green[i][j] = 0; blue[i][j] = 0; redT[i][j] = 0; greenT[i][j] = 0; blueT[i][j] = 0;
ent[i][j] = 10000000000; } }
function setPixel(imageData, x, y, r, g, b, a) { index = (x + y * imageData.width) * 4; imageData.data[index+0] = r; imageData.data[index+1] = g; imageData.data[index+2] = b; imageData.data[index+3] = a; }
function reset() { counter = 0;
for (xc = 0; xc < width; xc++) { for (yc = 0; yc < height; yc++) { red[xc][yc] = 0; green[xc][yc] = 0; blue[xc][yc] = 0; } } }
function diff(num1, num2){ return (num1 > num2)? num1-num2 : num2-num1 }
function loop() { if(counter == 0) { for(w = 0; w < 3; w++) { frequency = (Math.random() * 10) / 450;
frequency2 = (Math.random() * 10) / 450;
frequency3 = (Math.random() * 10) / 240;
frequency4 = (Math.random() * 10) / 240;
frequency5 = (Math.random() * 10) / 100;
frequency6 = (Math.random() * 10) / 100;
var r = Math.random() * 256 | 0; var g = Math.random() * 256 | 0; var b = Math.random() * 256 | 0; var r2 = Math.random() * 256 | 0; var g2 = Math.random() * 256 | 0; var b2 = Math.random() * 256 | 0; var r3 = Math.random() * 256 | 0; var g3 = Math.random() * 256 | 0; var b3 = Math.random() * 256 | 0; for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
if((red[xi][yi] <= 25) && (green[xi][yi] <= 25) && (blue[xi][yi] <= 25)) { amplitude = 1;// yi * (1/height); slowdownfrequency = 1;//1 - (yi * (1/height));
red[xi][yi] = ((Math.sin([xi]*frequency*slowdownfrequency) * Math.sin([yi]*frequency2*slowdownfrequency)) * amplitude)* r; green[xi][yi] = ((Math.sin([xi]*frequency*slowdownfrequency) * Math.sin([yi]*frequency2*slowdownfrequency)) * amplitude) * g; blue[xi][yi] = ((Math.sin([xi]*frequency*slowdownfrequency) * Math.sin([yi]*frequency2*slowdownfrequency)) * amplitude) * b;
//if((red[xi][yi] > 25) && (green[xi][yi] > 25) && (blue[xi][yi] > 25)) //{ red[xi][yi] += (Math.sin([xi]*frequency3) * Math.sin([yi]*frequency4)) * r2; green[xi][yi] += (Math.sin([xi]*frequency3) * Math.sin([yi]*frequency4)) * g2; blue[xi][yi] += (Math.sin([xi]*frequency3) * Math.sin([yi]*frequency4)) * b2; //} red[xi][yi] += (Math.sin([xi]*frequency5) * Math.sin([yi]*frequency6)) * r3; green[xi][yi] += (Math.sin([xi]*frequency5) * Math.sin([yi]*frequency6)) * g3; blue[xi][yi] += (Math.sin([xi]*frequency5) * Math.sin([yi]*frequency6)) * b3; } setPixel(imageData, xi, yi, r,g,b, 255); // 255 opaque } } } } else {
}
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, red[x][y],green[x][y],blue[x][y], 255); // 255 opaque } }
c.putImageData(imageData, 0, 0);
counter++;
setTimeout("loop()",0); // 100 }
loop();
</script> <br> <button onclick="reset()">Reset</button> <br> <br>
</html
|
firefly3 | woensdag 17 juli 2013 @ 20:26 |
haha

 |
pfaf | woensdag 17 juli 2013 @ 20:58 |
Mijn brein maakt er al gezichten van. Nu doen ze dat al snel, maar het is beter dan ruis... |
Bosbeetle | woensdag 17 juli 2013 @ 20:59 |
quote: idd 2 stipjes op de juiste plek en je hebt een gezicht. |
firefly3 | woensdag 17 juli 2013 @ 21:18 |
De nieuwe versie is zelfs 3D op je platte beeldscherm en sommige dingen worden steeds echter hehe
 |
Maanvis | donderdag 18 juli 2013 @ 01:13 |
ben je nou ook aan het trainen naar iets? |
firefly3 | donderdag 18 juli 2013 @ 06:22 |
quote: Nee, dat is valsspelen. |
Maanvis | donderdag 18 juli 2013 @ 08:27 |
quote: hoe komt het dan dat jouw plaatjes telkens beter worden? |
firefly3 | donderdag 18 juli 2013 @ 19:01 |
quote: Ik had nog wat foutjes gemaakt vandaar. |
firefly3 | donderdag 18 juli 2013 @ 20:21 |
 |
Pietverdriet | donderdag 18 juli 2013 @ 20:32 |
Deze plaatjes zijn niet random |
firefly3 | donderdag 18 juli 2013 @ 20:33 |
quote: Jawel, dit vieze plaatje komt er net ook uit gerold...
 |
Bosbeetle | donderdag 18 juli 2013 @ 21:27 |
Het valt mij vooral op dat de sinussen alleen maar 1 hoek hebben alleen maar haaks |
firefly3 | vrijdag 19 juli 2013 @ 06:53 |
quote: Ja, dat is toevallig. Bij andere plaatjes weer van beneden naar boven. |
Resistor | vrijdag 19 juli 2013 @ 07:09 |
quote: Kwartslag draaien en je hebt een colaflesje, iets wat een beetje op Maria lijkt (en ik ben niet eens katholiek), en een naakte vrouw met een lekker kontje maar zonder borsten (lijkt wel een moderne Rorschachtest)
Ik had verwacht dat je met ruis zou werken, dan zou mijn vraag kunnen zijn 'hoe veel % pixelfouten zou je accepteren', maar dit ziet er al indrukwekkend uit. |
firefly3 | vrijdag 19 juli 2013 @ 07:30 |
quote: Op vrijdag 19 juli 2013 07:09 schreef Resistor het volgende:[..] Kwartslag draaien en je hebt een colaflesje, iets wat een beetje op Maria lijkt (en ik ben niet eens katholiek), en een naakte vrouw met een lekker kontje maar zonder borsten  (lijkt wel een moderne Rorschachtest) Ik had verwacht dat je met ruis zou werken, dan zou mijn vraag kunnen zijn 'hoe veel % pixelfouten zou je accepteren', maar dit ziet er al indrukwekkend uit. Haha bedankt voor de support!  |
Bosbeetle | vrijdag 19 juli 2013 @ 08:17 |
quote: Ik mis dus hoeken die niet 0,90,180 of 270 zijn, ik zou iets meer vrijheidsgraden inbouwen zodat je wat minder 'hoekige' beelden krijgt. Het worden nu allemaal afgeronde vierkantjes of rechthoekjes. |
Bosbeetle | vrijdag 19 juli 2013 @ 11:43 |
Kortom je moet je sinussen niet over x en y laten lopen maar ze ook een random rotatie meegeven. |
123hopsaflops | vrijdag 19 juli 2013 @ 12:11 |
Ik vind het eigenlijk al verbazend goede plaatjes, je moet hem echt verder aanpassen.
Het boeit toch eigenlijk niet hoe ver je hem 'stuurt'? Het blijft redelijk random. |
Bosbeetle | vrijdag 19 juli 2013 @ 12:14 |
Ik vind ze eigenlijk nogal gestructureerd je kunt de sinussen er makkelijk uit halen het zijn ook maar weinig sinussen waardoor je meestal een variatie op een schaakbord in verschillende groten krijgt. |
123hopsaflops | vrijdag 19 juli 2013 @ 12:17 |
quote: Op vrijdag 19 juli 2013 12:14 schreef Bosbeetle het volgende:Ik vind ze eigenlijk nogal gestructureerd je kunt de sinussen er makkelijk uit halen  het zijn ook maar weinig sinussen waardoor je meestal een variatie op een schaakbord in verschillende groten krijgt. Het gaat meer om het idee om sinussen te gebruiken, dan de uitvoering tot nu toe.
Dankzij die sinus is het van pure ruis, naar herkenbare vormen gegaan. Uiteraard moet er nog flink aan gesleuteld worden, maar het begin is er. |
Bosbeetle | vrijdag 19 juli 2013 @ 16:05 |
ik ben zelf ook even aan het proberen met iets meer sinussen (100) in 3 kanalen In 1 kanaal krijg je vaak iets wat op een stof lijkt (niet zo gek ook, dat is ook periodiek) maar in 2 kanalen kan ik er niet meer zoveel van maken.
Voor de mensen die het willen proberen het is gedaan in imagej, om preciezer te zijn fiji (fiji is just imagej: een imagej met plugins) het is gratis software dus het is te proberen 
100 golven:

15 golven:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | newImage("Untitled", "8-bit black", 1000, 1000, 1); cycles=getNumber("Number of cycles", 10); for(r=1;r<=3;r++){ for(n=1;n<=cycles;n++){ showStatus(n); selectWindow("Untitled"); m=random()*0.02; o=random()*0.01; p=random()*16; q=random()*16; poly=newArray(10); for(i=1;i<1000;i++){ for(j=1;j<1000;j++){ k=(p*sin(i*m+(2*PI)))*(q*sin(j*o+(2*PI))); setPixel(i,j,k); } } poly=newArray(100); for(s=0;s<10;s++){ poly[s]=random()*1000; } makePolygon(poly[0],poly[1],poly[2],poly[3],poly[4],poly[5],poly[6],poly[7],poly[8],poly[9],poly[10],poly[11],poly[12],poly[13],poly[14],poly[15],poly[16],poly[17],poly[18],poly[19],poly[20],poly[21],poly[22],poly[23],poly[24],poly[25],poly[26],poly[27],poly[28],poly[0]); setBackgroundColor(0, 0, 0); run("Clear Outside"); run("Select None"); selectWindow("Untitled"); run("Duplicate...", "title=Untitled-"+n); angle=random()*360; run("Rotate... ", "angle="+angle+" grid=1 interpolation=Bilinear"); if(n>1){imageCalculator("Add create 32-bit", "Untitled-"+n-1+"","Untitled-"+n); close("Untitled-"+n); close("Untitled-"+n-1); selectWindow("Result of Untitled-"+n-1); rename("Untitled-"+n);}
} selectWindow("Untitled-"+cycles); rename("Channel"+r); } run("Merge Channels...", "c1=Channel1 c2=Channel2 c3=Channel3 create"); |
Ik ben niet tevreden over dat hij een golf altijd het hele vlak doorloopt dat doet het in een beeld ook niet, er moeten dus nog random contourin in komen 
(ohja je ziet altijd een rondje omdat ik rotaties maak en resultaat een niet gevuld vierkant geeft)
[ Bericht 16% gewijzigd door Bosbeetle op 19-07-2013 17:24:53 ] |
Bosbeetle | vrijdag 19 juli 2013 @ 16:11 |
met iets grotere blobs lijkt het meer op wat firefly maakt

of een combi
 |
Bosbeetle | vrijdag 19 juli 2013 @ 16:39 |

nu niet sinussen in het hele beeld maar in een random gegenereerde 10 hoek  |
Bosbeetle | vrijdag 19 juli 2013 @ 17:18 |
hmm op een of andere manier pakt imageJ een 100hoek niet 
maar een 30 hoek ziet er ook wel grappig uit

 |
firefly3 | vrijdag 19 juli 2013 @ 17:52 |
quote: Gaaf. Tel je overigens de sinussen wel bij elkaar op? Ik verdubbel de frequentie overigens per golf. Ik ga straks mss ff wat met richting doen.
Euhm nu ik er over nadenk, een geroteerde sinus geeft alleen chaos of een middelpunt waar alles bij elkaar komt. Nog even goed over nadenken.
[ Bericht 7% gewijzigd door firefly3 op 19-07-2013 20:18:02 ] |
Bosbeetle | vrijdag 19 juli 2013 @ 17:53 |
quote: Op vrijdag 19 juli 2013 17:52 schreef firefly3 het volgende:[..] Gaaf. Tel je overigens de sinussen wel bij elkaar op? Ik verdubbel de frequentie overigens per golf. Ik ga straks mss ff wat met richting doen. Jup ik tel de sinussen bij elkaar op (ik eindig dan ook met een 32bit plaatje ) variabele frequenties daar had ik nog niet aan gedacht! eens kijken of ik dat later kan implementeren  |
firefly3 | vrijdag 19 juli 2013 @ 17:58 |
quote: Op vrijdag 19 juli 2013 17:53 schreef Bosbeetle het volgende:[..] Jup ik tel de sinussen bij elkaar op (ik eindig dan ook met een 32bit plaatje  )  variabele frequenties daar had ik nog niet aan gedacht! eens kijken of ik dat later kan implementeren  Woestijnen hebben vaak heuvels die ook bestaan uit delen met een verdubbelde frequentie. Verder komt twee overal voor in de natuur enz, vandaar dat ik het toe pas. |
firefly3 | vrijdag 19 juli 2013 @ 18:12 |
Soms moet er denk ik ook binnen golf domeinen gegolft worden. Zo krijg je objecten. In principe zijn we ook gewoon golven als je op quantum niveau bekijkt ;p |
Bosbeetle | vrijdag 19 juli 2013 @ 20:25 |
quote: Op vrijdag 19 juli 2013 18:12 schreef firefly3 het volgende:Soms moet er denk ik ook binnen golf domeinen gegolft worden. Zo krijg je objecten. In principe zijn we ook gewoon golven als je op quantum niveau bekijkt ;p heb jij de xkcd van vandaag gezien 
 |
firefly3 | vrijdag 19 juli 2013 @ 20:27 |
quote: Haha toevallig! |
123hopsaflops | vrijdag 19 juli 2013 @ 20:38 |
Ik vond het een leuk topic, jammer dat ik nu geen tijd heb om mij er verder in te verdienen... |
Bosbeetle | vrijdag 19 juli 2013 @ 20:39 |
quote: dit topic blijft vast nog wel bestaan  |
123hopsaflops | vrijdag 19 juli 2013 @ 23:16 |
quote: Ik zou graag wat meer in die Fourier-transformaties duiken. Ik heb een keer een lezing gehad over die dingen en dat deze ook gebruikt worden voor bepaalde filters in photoshop, maar nu geen tijd over om er artikelen over te lezen of een algoritme te schrijven  |
firefly3 | maandag 22 juli 2013 @ 22:25 |
 |
firefly3 | maandag 22 juli 2013 @ 22:38 |
Ik krijg allemaal rare shit sinds ik het rood kanaal vermenigvuldigt heb met alle voorgaande sinussen, even kijken of ik het later weer kan vertalen naar "normale" kleuren ipv rood. En ja, er lijkt idd iemand achter het gordijn te staan |
DarkSand | dinsdag 23 juli 2013 @ 11:07 |
Om dit proces te versnellen kan je evolutie gebruiken met kunstmatige selectie, zoals hier.
http://en.wikipedia.org/wiki/Heikegani

 |
firefly3 | woensdag 24 juli 2013 @ 06:55 |
quote: Ik wil niet van tevoren bedenken wat ik wil hebben  |
firefly3 | woensdag 24 juli 2013 @ 06:59 |

 |
DarkSand | woensdag 24 juli 2013 @ 15:44 |
quote: Haha, dan zijn er denk ik iets teveel mogelijkheden. Maar wel geinig om mee te experimenteren. De plaatjes welke ik nu al zie zijn interessant. |
Bosbeetle | woensdag 24 juli 2013 @ 15:52 |

een soort abstracte leeuw  |
pfaf | woensdag 24 juli 2013 @ 18:04 |
quote: ET phone home. |
firefly3 | donderdag 12 september 2013 @ 20:49 |
 |
Maanvis | donderdag 12 september 2013 @ 20:50 |
quote: Hello, is it me you're looking for? |
firefly3 | donderdag 12 september 2013 @ 20:53 |
quote:  |
firefly3 | donderdag 12 september 2013 @ 21:10 |

^^ |
firefly3 | zaterdag 14 september 2013 @ 12:46 |


 |
Tchock | zaterdag 14 september 2013 @ 12:57 |
quote: Deze lijken veel meer op bestaande afbeeldingen (hoewel wazig) dan de vorige pogingen. |
firefly3 | zaterdag 14 september 2013 @ 13:02 |
quote: Thanks, de kleuren transformeren is denk ik de volgende stap en ondertussen een betere "resolutie" proberen te krijgen. Het is een beetje pastel achtig nog. |
Tchock | zaterdag 14 september 2013 @ 13:02 |
quote: Op zaterdag 14 september 2013 13:02 schreef firefly3 het volgende:[..] Thanks, de kleuren transformeren is denk ik de volgende stap en ondertussen een betere "resolutie" proberen te krijgen. Het is een beetje pastel achtig nog. Maar het probleem is wel dat om het op iets herkenbaars te laten lijken zonder dat het wazig is, je veel meer detail moet toevoegen. |
firefly3 | zaterdag 14 september 2013 @ 13:04 |
quote: Op zaterdag 14 september 2013 13:02 schreef Tchock het volgende:[..] Maar het probleem is wel dat om het op iets herkenbaars te laten lijken zonder dat het wazig is, je veel meer detail moet toevoegen. Nieuwe uitdagingen  |
firefly3 | zaterdag 14 september 2013 @ 13:19 |
 |
Tchock | zaterdag 14 september 2013 @ 13:33 |
Ik heb de laatste zes afbeeldingen door een image-search heengegooid. Grappig genoeg kregen ze allemaal deze foutmelding:

Behalve deze:
quote: Die werd wel herkend als afbeelding. Er werden overigens geen soortgelijke afbeeldingen op het web gevonden.  |
Bosbeetle | zaterdag 14 september 2013 @ 16:08 |
quote: Op zaterdag 14 september 2013 13:33 schreef Tchock het volgende:Ik heb de laatste zes afbeeldingen door een image-search heengegooid. Grappig genoeg kregen ze allemaal deze foutmelding: [ afbeelding ] Behalve deze: [..] Die werd wel herkend als afbeelding. Er werden overigens geen soortgelijke afbeeldingen op het web gevonden.  Dat betekent dan blijkbaar dat daar toch genoeg componenten in zitten  |
Tchock | zaterdag 14 september 2013 @ 16:09 |
quote: Precies En als iets meer identificeerbaar wordt zit je dichter bij een 'bestaand' patroon of afbeelding, toch? |
firefly3 | zaterdag 14 september 2013 @ 18:10 |
quote: Het algoritme zoekt waarschijnlijk naar lijnen en hoeken. Die komen idd nog niet voor in mijn plaatjes. Ik ben van mening dat ik vanaf abstractheid en chaos moet opbouwen naar orde en concreetheid. |
firefly3 | zondag 15 september 2013 @ 20:21 |


 |
Tchock | zondag 15 september 2013 @ 20:34 |
quote: Die bovenste is een gezicht. Just sayin'. Met een persoon in foetushouding er achter. |
Resistor | zondag 15 september 2013 @ 20:35 |
Nu begint het eng te worden... vooral die 3e
Eerste gedachte was: kleuren vervangen zodat je 'menselijke' kleuren krijgt, resolutie verlagen, minder kleuren zodat je scherpere overgangen hebt, weer vergroten, lijnen weer verzachten. Lijkt al echt op een gezicht. |
firefly3 | zondag 15 september 2013 @ 21:05 |
Ik zit nu te kijken hoe ik de hoeveelheid detail oneindig omhoog kan schroeven, dus het wordt wel spannend  |
Duvel | zondag 15 september 2013 @ 21:08 |
Bedenk je wel dat het menselijk brein geprogrammeerd is om overal gezichten in te zien. |
Tchock | zondag 15 september 2013 @ 21:09 |
quote: Dat is zeker waar, maar er komt een punt dat je niet meer naar een 'autogrill-gezicht' kijkt en naar een menselijk gezicht.  |
firefly3 | zondag 15 september 2013 @ 21:43 |
OMG |
firefly3 | zondag 15 september 2013 @ 21:48 |
ik begin langzaam omgevingen te zien , objecten , vanalles |
Geralt | zondag 15 september 2013 @ 21:49 |
quote: Wij ook  |
firefly3 | zondag 15 september 2013 @ 21:50 |


!!!! |
firefly3 | zondag 15 september 2013 @ 21:53 |
 |
firefly3 | zondag 15 september 2013 @ 22:05 |


backup van de formule:
amount *= ((Math.sin(phaseshiftwave1[wave]+(xi*frequencywave1[wave])) * Math.sin(phaseshiftwave2[wave]+(yi*frequencywave2[wave])))) + ((Math.sin(phaseshiftwave3[wave]+(xi*frequencywave3[wave])) * Math.sin(phaseshiftwave4[wave]+(yi*frequencywave4[wave]))));
red[xi][yi] += amount * redwave[wave]; green[xi][yi] += amount * greenwave[wave]; blue[xi][yi] += amount * bluewave[wave]; |
Duvel | zondag 15 september 2013 @ 22:07 |
Spooky! |
ludicrous_monk | zondag 15 september 2013 @ 22:26 |
Interessant. Hier ga ik misschien ook nog iets mee kloten. Ik denk alleen dat je meer frequenties nodig hebt. Nog iets dat je kan gebruiken is dat de natuur vol zit met zgn "roze ruis/pink noise", dwz. vermogensdichtheid bij een bepaalde frequentie = 1/frequentie. Dat wil zeggen dat er minder hoogfrequente data is dan laagfrequente.
Verder kan je nog gebruiken dat helderheid veel opvallender is dan kleur. Dus het is belangrijk om veel detail in de helderheid te brengen t.o.v. de kleur. Een RGB model is dus veel minder geschikt dan een HSL model. |
firefly3 | maandag 16 september 2013 @ 07:40 |
 |
firefly3 | maandag 16 september 2013 @ 20:13 |
Ben nog van alles en nog wat aan het proberen:


 |
Resistor | maandag 16 september 2013 @ 20:23 |
Die laatste geloof ik niet meer, ziet er te perfect uit.
Lijkt wel een fotocollage. Oog, half masker, cyborgvrouw met rode lippenstift, en nog wat vage vlekken met ogen er in.
Maar dan nog: ik blijf het gewoon een moderne Rosarchtest vinden. Iemand anders kan er andere dingen in zien  |
firefly3 | maandag 16 september 2013 @ 20:26 |
quote: Op maandag 16 september 2013 20:23 schreef Resistor het volgende:Die laatste geloof ik niet meer, ziet er te perfect uit. Lijkt wel een fotocollage. Oog, half masker, cyborgvrouw met rode lippenstift, en nog wat vage vlekken met ogen er in. Maar dan nog: ik blijf het gewoon een moderne Rosarchtest vinden. Iemand anders kan er andere dingen in zien  Ik vind het er ook ongeloofwaardig uit zien, er komen "te perfecte" plaatjes uit. Maar wel gaaf dat ik eindelijk tot het punt gekomen ben dat het fake lijkt |
firefly3 | maandag 16 september 2013 @ 20:31 |
Ik zal de html file wel publiekelijk maken, dan kan iedereen plaatjes genereren |
firefly3 | maandag 16 september 2013 @ 20:40 |
!!!!!!!!!!!! Kom maar op met het commentaar 
 |
firefly3 | maandag 16 september 2013 @ 20:42 |
Hier is de html code, kopier het naar een txt file, hernoem het naar .html en open het maar met google chrome.
SPOILER <html> <title>Random image</title>
<canvas id="view" width="800", height="600"> Canvas </canvas>
<body bgcolor = "#101010"> </body>
<script type="text/javascript">
var counter = 0;
element = document.getElementById("view"); c = element.getContext("2d");
width = element.width; height = element.height;
imageData = c.createImageData(width, height);
var red = new Array(width); var green = new Array(width); var blue = new Array(width);
var frequencywave1 = new Array(100); var frequencywave2 = new Array(100); var frequencywave3 = new Array(100); var frequencywave4 = new Array(100); var phaseshiftwave1 = new Array(100); var phaseshiftwave2 = new Array(100); var phaseshiftwave3 = new Array(100); var phaseshiftwave4 = new Array(100); var redwave = new Array(100); var greenwave = new Array(100); var bluewave = new Array(100);
var historyred = new Array(width); var historygreen = new Array(width); var historyblue = new Array(width);
for (i = 0; i < width; i++) { red[i] = new Array(height); green[i] = new Array(height); blue[i] = new Array(height);
historyred[i] = new Array(height); historygreen[i] = new Array(height); historyblue[i] = new Array(height);
for (j = 0; j < height; j++) { red[i][j] = 0; green[i][j] = 0; blue[i][j] = 0;
historyred[i][j] = 0; historygreen[i][j] = 0; historyblue[i][j] = 0; } }
function setPixel(imageData, x, y, r, g, b, a) { index = (x + y * imageData.width) * 4; imageData.data[index+0] = r; imageData.data[index+1] = g; imageData.data[index+2] = b; imageData.data[index+3] = a; }
function reset() { counter = 0;
for (xc = 0; xc < width; xc++) { for (yc = 0; yc < height; yc++) { historyred[xc][yc] = red[xc][yc]; historygreen[xc][yc] = green[xc][yc]; historyblue[xc][yc] = blue[xc][yc]; red[xc][yc] = 0; green[xc][yc] = 0; blue[xc][yc] = 0; } } }
function history() { for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, historyred[x][y],historygreen[x][y],historyblue[x][y], 255); } }
c.putImageData(imageData, 0, 0); }
function diff(num1, num2){ return (num1 > num2)? num1-num2 : num2-num1 }
function loop() { if(counter == 0) { for(w = 0; w < 1; w++) {
frequency1 = (Math.random() * 10) / 2560; frequency2 = (Math.random() * 10) / 2560; frequency3 = (Math.random() * 10) / 1280; frequency4 = (Math.random() * 10) / 1280; phaseshift1 = ((Math.random() * 10) / 10) * Math.PI; phaseshift2 = ((Math.random() * 10) / 10) * Math.PI; phaseshift3 = ((Math.random() * 10) / 10) * Math.PI; phaseshift4 = ((Math.random() * 10) / 10) * Math.PI;
var r = Math.random() * 256 | 0; var g = Math.random() * 256 | 0; var b = Math.random() * 256 | 0;
for (colors = 0; colors < 100; colors++) { redwave[colors] = Math.random() * 256 | 0; greenwave[colors] = Math.random() * 256 | 0; bluewave[colors] = Math.random() * 256 | 0; }
var startfreq = 2560;// //10240; // 5120 2560
for (wavesInit = 0; wavesInit < 100; wavesInit++) {
/* frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / wavesInit); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / wavesInit); frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / wavesInit); frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / wavesInit); frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit-1))); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit-1))); frequencywave3[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit))); frequencywave4[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit))); */
frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*1.5)); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*1.5)); frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*1.5)); frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*1.5));
phaseshiftwave1[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave2[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave3[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave4[wavesInit] = ((Math.random() * 10) / 10) * Math.PI;
}
for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4)))); red[xi][yi] = amount * r; green[xi][yi] = amount * g; blue[xi][yi] =amount * b; for (wave = 1; wave < 20; wave++) {
amount *= ((Math.sin(phaseshiftwave1[wave]+(xi*frequencywave1[wave])) * Math.sin(phaseshiftwave2[wave]+(yi*frequencywave2[wave])))) + ((Math.sin(phaseshiftwave3[wave]+(xi*frequencywave3[wave])) * Math.sin(phaseshiftwave4[wave]+(yi*frequencywave4[wave]))));
red[xi][yi] += amount * redwave[wave]; green[xi][yi] += amount * greenwave[wave]; blue[xi][yi] += amount * bluewave[wave];
}
//red[xi][yi] += Math.random() * 20 | 0; //green[xi][yi] += Math.random() * 20 | 0; //blue[xi][yi] += Math.random() * 20 | 0; } } }
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, red[x][y],green[x][y],blue[x][y], 255); // 255 opaque } } } else {
}
c.putImageData(imageData, 0, 0);
counter++;
setTimeout("loop()",0); // 100 }
loop();
</script> <br> <button onclick="reset()">New</button> <button onclick="history()">History</button> <br> <br>
</html>
|
firefly3 | maandag 16 september 2013 @ 20:55 |
 |
Tchock | maandag 16 september 2013 @ 20:56 |
quote: Op maandag 16 september 2013 20:42 schreef firefly3 het volgende:Hier is de html code, kopier het naar een txt file, hernoem het naar .html en open het maar met google chrome. SPOILER <html> <title>Random image</title>
<canvas id="view" width="800", height="600"> Canvas </canvas>
<body bgcolor = "#101010"> </body>
<script type="text/javascript">
var counter = 0;
element = document.getElementById("view"); c = element.getContext("2d");
width = element.width; height = element.height;
imageData = c.createImageData(width, height);
var red = new Array(width); var green = new Array(width); var blue = new Array(width);
var frequencywave1 = new Array(100); var frequencywave2 = new Array(100); var frequencywave3 = new Array(100); var frequencywave4 = new Array(100); var phaseshiftwave1 = new Array(100); var phaseshiftwave2 = new Array(100); var phaseshiftwave3 = new Array(100); var phaseshiftwave4 = new Array(100); var redwave = new Array(100); var greenwave = new Array(100); var bluewave = new Array(100);
var historyred = new Array(width); var historygreen = new Array(width); var historyblue = new Array(width);
for (i = 0; i < width; i++) { red[i] = new Array(height); green[i] = new Array(height); blue[i] = new Array(height);
historyred[i] = new Array(height); historygreen[i] = new Array(height); historyblue[i] = new Array(height);
for (j = 0; j < height; j++) { red[i][j] = 0; green[i][j] = 0; blue[i][j] = 0;
historyred[i][j] = 0; historygreen[i][j] = 0; historyblue[i][j] = 0; } }
function setPixel(imageData, x, y, r, g, b, a) { index = (x + y * imageData.width) * 4; imageData.data[index+0] = r; imageData.data[index+1] = g; imageData.data[index+2] = b; imageData.data[index+3] = a; }
function reset() { counter = 0;
for (xc = 0; xc < width; xc++) { for (yc = 0; yc < height; yc++) { historyred[xc][yc] = red[xc][yc]; historygreen[xc][yc] = green[xc][yc]; historyblue[xc][yc] = blue[xc][yc]; red[xc][yc] = 0; green[xc][yc] = 0; blue[xc][yc] = 0; } } }
function history() { for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, historyred[x][y],historygreen[x][y],historyblue[x][y], 255); } }
c.putImageData(imageData, 0, 0); }
function diff(num1, num2){ return (num1 > num2)? num1-num2 : num2-num1 }
function loop() { if(counter == 0) { for(w = 0; w < 1; w++) {
frequency1 = (Math.random() * 10) / 2560; frequency2 = (Math.random() * 10) / 2560; frequency3 = (Math.random() * 10) / 1280; frequency4 = (Math.random() * 10) / 1280; phaseshift1 = ((Math.random() * 10) / 10) * Math.PI; phaseshift2 = ((Math.random() * 10) / 10) * Math.PI; phaseshift3 = ((Math.random() * 10) / 10) * Math.PI; phaseshift4 = ((Math.random() * 10) / 10) * Math.PI;
var r = Math.random() * 256 | 0; var g = Math.random() * 256 | 0; var b = Math.random() * 256 | 0;
for (colors = 0; colors < 100; colors++) { redwave[colors] = Math.random() * 256 | 0; greenwave[colors] = Math.random() * 256 | 0; bluewave[colors] = Math.random() * 256 | 0; }
var startfreq = 2560;// //10240; // 5120 2560
for (wavesInit = 0; wavesInit < 100; wavesInit++) {
/* frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / wavesInit); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / wavesInit); frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / wavesInit); frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / wavesInit); frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit-1))); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit-1))); frequencywave3[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit))); frequencywave4[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit))); */
frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*1.5)); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*1.5)); frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*1.5)); frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*1.5));
phaseshiftwave1[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave2[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave3[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave4[wavesInit] = ((Math.random() * 10) / 10) * Math.PI;
}
for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4)))); red[xi][yi] = amount * r; green[xi][yi] = amount * g; blue[xi][yi] =amount * b; for (wave = 1; wave < 20; wave++) {
amount *= ((Math.sin(phaseshiftwave1[wave]+(xi*frequencywave1[wave])) * Math.sin(phaseshiftwave2[wave]+(yi*frequencywave2[wave])))) + ((Math.sin(phaseshiftwave3[wave]+(xi*frequencywave3[wave])) * Math.sin(phaseshiftwave4[wave]+(yi*frequencywave4[wave]))));
red[xi][yi] += amount * redwave[wave]; green[xi][yi] += amount * greenwave[wave]; blue[xi][yi] += amount * bluewave[wave];
}
//red[xi][yi] += Math.random() * 20 | 0; //green[xi][yi] += Math.random() * 20 | 0; //blue[xi][yi] += Math.random() * 20 | 0; } } }
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, red[x][y],green[x][y],blue[x][y], 255); // 255 opaque } } } else {
}
c.putImageData(imageData, 0, 0);
counter++;
setTimeout("loop()",0); // 100 }
loop();
</script> <br> <button onclick="reset()">New</button> <button onclick="history()">History</button> <br> <br>
</html>
Hahaha. Cool  |
firefly3 | maandag 16 september 2013 @ 20:56 |
Kijk die pupil van dat rode oog en die hand |
firefly3 | maandag 16 september 2013 @ 20:56 |
quote:
 |
firefly3 | maandag 16 september 2013 @ 21:02 |
 |
RobbieRonald | maandag 16 september 2013 @ 21:52 |
Onderaan kijkt er iemand mee...
 |
firefly3 | maandag 16 september 2013 @ 21:55 |
quote: Haha gaaf!
[ Bericht 0% gewijzigd door firefly3 op 16-09-2013 22:02:56 ] |
Maanvis | maandag 16 september 2013 @ 22:07 |
er komen een beetje veel ongeveer dezlefde plaatjes voorbij, met name een zwart embryo achtig ding in een blauwe achtergrond. enig idee hoe ik dat kan veranderen zodat het meer random is? |
Tchock | maandag 16 september 2013 @ 22:10 |
quote: Op maandag 16 september 2013 22:07 schreef Maanvis het volgende:er komen een beetje veel ongeveer dezlefde plaatjes voorbij, met name een zwart embryo achtig ding in een blauwe achtergrond. enig idee hoe ik dat kan veranderen zodat het meer random is? Er lijken een soort reeksen in te zitten. Net had ik vaak achter elkaar een afbeelding, verticaal doormidden verdeeld in een felgekleurd vak met zwarte vlekken en een zwart vak met gekleurde vlekken. Nu krijg ik al een tijdje vierkant-ige, gekleurde donuts op een zwarte achtergrond. |
Maanvis | maandag 16 september 2013 @ 22:12 |
Het zwarte embryo in een blauwe achtegrond is gegroeid en is nu een paarse foetus die zijn eigen hand op probeert te eten en heul scherpe tanden heeft.
 |
Maanvis | maandag 16 september 2013 @ 22:14 |
 rechtsonder een half gezicht |
firefly3 | maandag 16 september 2013 @ 22:15 |
Geen idee, ik duik mijn bed in
 |
Maanvis | maandag 16 september 2013 @ 22:19 |
 midden boven weer een rood half (spook) gezicht |
Tchock | maandag 16 september 2013 @ 22:29 |
quote: Het is deze dude.
 |
firefly3 | maandag 23 september 2013 @ 20:01 |
 |
firefly3 | maandag 23 september 2013 @ 21:38 |
Typisch, de zinnen die ik kreeg voor het bevestigen van het uploaden van de plaatjes: "be careful", "across the border" 

 |
Life2.0 | maandag 23 september 2013 @ 21:42 |
quote: bij de tt moest ik daar al aan denken |
Life2.0 | maandag 23 september 2013 @ 21:43 |
quote: is dit een film?  |
Tchock | maandag 23 september 2013 @ 21:44 |
quote: Jep. Pan's Labyrinth (El laberinto del fauno). Hele goede film zelfs. |
Life2.0 | maandag 23 september 2013 @ 21:45 |
quote: ik ga hem zoeken, echt dit moet ik gezien hebben  |
firefly3 | maandag 23 september 2013 @ 21:48 |
 |
Maanvis | maandag 23 september 2013 @ 21:55 |
tof, je hebt een screenshot uit een michael bay film geheel automatisch gegenereerd! |
firefly3 | maandag 23 september 2013 @ 21:56 |
quote:
Ik hoop dat ik alles met veel detail kan krijgen op een gegeven moment. |
Maanvis | maandag 23 september 2013 @ 21:58 |
quote: ik heb met de instellingen zitten klooien maar het werd niet veel beter  |
firefly3 | maandag 23 september 2013 @ 22:04 |
quote: Ik heb ook een aantal versies die letterlijk de mist in zijn gegaan haha |
firefly3 | zondag 13 oktober 2013 @ 19:34 |

 |
drijfhout | maandag 14 oktober 2013 @ 11:49 |
Wat een vreselijk cool topic. Die voorlaatste echt een babyfoto. |
firefly3 | dinsdag 15 oktober 2013 @ 17:33 |
quote: Thanks! Ik ben nu bezig met videobeelden. Het begint steeds echter te worden. |
firefly3 | dinsdag 15 oktober 2013 @ 22:15 |
Geen idee of het filmpje bij jullie goed werkt, op de een of ander manier heb ik moeite met het opnemen ervan. In ieder geval is hier het eerste filmpje:
http://www.megafileupload.com/en/file/461230/m1-avi.html |
firefly3 | donderdag 17 oktober 2013 @ 21:22 |
Nieuwe versie met videobeelden (opslaan als .html file):
Klik op "New" voor het uitkiezen van een plaatje. Daarna op "Record" en wacht totdat de knoppen weer oplichten als je erover scrolt, het kan namelijk zo'n max 12 seconde duren voordat het klaar is. Klik daarna op "Play" en het filmpje wordt afgespeeld.
Als er een poort bij je thuis wordt geopend naar de hel ofzo moet je mij niet de schuld geven 
SPOILER <html> <title>Random image</title>
<canvas id="view" width="500", height="500"> Canvas </canvas>
<body bgcolor = "#101010"> </body>
<script type="text/javascript">
var counter = 0;
element = document.getElementById("view"); c = element.getContext("2d");
width = element.width; height = element.height;
imageData = c.createImageData(width, height);
var red = new Array(width); var green = new Array(width); var blue = new Array(width);
var playmovie = 0; var movietimecounter = 0;
var frameamount = 10; var redframe = new Array(frameamount); var greenframe = new Array(frameamount); var blueframe = new Array(frameamount);
var frequencywave1 = new Array(100); var frequencywave2 = new Array(100); var frequencywave3 = new Array(100); var frequencywave4 = new Array(100); var phaseshiftwave1 = new Array(100); var phaseshiftwave2 = new Array(100); var phaseshiftwave3 = new Array(100); var phaseshiftwave4 = new Array(100); var redwave = new Array(100); var greenwave = new Array(100); var bluewave = new Array(100);
var historyred = new Array(width); var historygreen = new Array(width); var historyblue = new Array(width);
var r; var g; var b;
for (i = 0; i < width; i++) { red[i] = new Array(height); green[i] = new Array(height); blue[i] = new Array(height);
historyred[i] = new Array(height); historygreen[i] = new Array(height); historyblue[i] = new Array(height);
for (j = 0; j < height; j++) { red[i][j] = 0; green[i][j] = 0; blue[i][j] = 0;
historyred[i][j] = 0; historygreen[i][j] = 0; historyblue[i][j] = 0; } }
for (f = 0; f < frameamount; f++) { redframe[f] = new Array(width); greenframe[f] = new Array(width); blueframe[f] = new Array(width); for(k = 0; k < width; k++) { redframe[f][k] = new Array(height); greenframe[f][k] = new Array(height); blueframe[f][k] = new Array(height); for (l = 0; l < height; l++) { redframe[f][k][l] = 0; greenframe[f][k][l] = 0; blueframe[f][k][l] = 0; } } }
function setPixel(imageData, x, y, r, g, b, a) { index = (x + y * imageData.width) * 4; imageData.data[index+0] = r; imageData.data[index+1] = g; imageData.data[index+2] = b; imageData.data[index+3] = a; }
function reset() { playmovie = 0; counter = 0;
for (xc = 0; xc < width; xc++) { for (yc = 0; yc < height; yc++) { historyred[xc][yc] = red[xc][yc]; historygreen[xc][yc] = green[xc][yc]; historyblue[xc][yc] = blue[xc][yc]; red[xc][yc] = 0; green[xc][yc] = 0; blue[xc][yc] = 0; } } }
function history() { for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, historyred[x][y],historygreen[x][y],historyblue[x][y], 255); } }
c.putImageData(imageData, 0, 0); }
function diff(num1, num2){ return (num1 > num2)? num1-num2 : num2-num1 }
function record() { for(f = 0; f < frameamount; f++) { for (wavesInit = 1; wavesInit < 100; wavesInit++) { //frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); //frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); //frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0)); //frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0));
phaseshiftwave1[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave2[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave3[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave4[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave1[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave2[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave3[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave4[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); } for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4)))); redframe[f][xi][yi] = amount * r; greenframe[f][xi][yi] =amount * g; blueframe[f][xi][yi] =amount * b; for (wave = 1; wave < 20; wave++) {
amount *= ((Math.sin(phaseshiftwave1[wave]+(xi*frequencywave1[wave])) * Math.sin(phaseshiftwave2[wave]+(yi*frequencywave2[wave])))) + ((Math.sin(phaseshiftwave3[wave]+(xi*frequencywave3[wave])) * Math.sin(phaseshiftwave4[wave]+(yi*frequencywave4[wave]))));
redframe[f][xi][yi] += amount * redwave[wave]; greenframe[f][xi][yi] += amount * greenwave[wave]; blueframe[f][xi][yi] += amount * bluewave[wave];
}
redframe[f][xi][yi] += Math.random() * 20 | 0; greenframe[f][xi][yi] += Math.random() * 20 | 0; blueframe[f][xi][yi] += Math.random() * 20 | 0;
} } } }
function play() { playmovie = 1; } function loop() { if(counter == 0) { //for(w = 0; w < 1; w++) //{
frequency1 = (Math.random() * 10) / 2560; frequency2 = (Math.random() * 10) / 2560; frequency3 = (Math.random() * 10) / 1280; frequency4 = (Math.random() * 10) / 1280; frequency5 = (Math.random() * 10) / 640; frequency6 = (Math.random() * 10) / 640; frequency7 = (Math.random() * 10) / 320; frequency8 = (Math.random() * 10) / 320; frequency9 = (Math.random() * 10) / 1280; frequency10 = (Math.random() * 10) / 1280; frequency11 = (Math.random() * 10) / 640; frequency12 = (Math.random() * 10) / 640; frequency13 = (Math.random() * 10) / 320; frequency14= (Math.random() * 10) / 320; frequency15 = (Math.random() * 10) /160; frequency16 = (Math.random() * 10) / 160;
phaseshift1 = ((Math.random() * 10) / 10) * Math.PI; phaseshift2 = ((Math.random() * 10) / 10) * Math.PI; phaseshift3 = ((Math.random() * 10) / 10) * Math.PI; phaseshift4 = ((Math.random() * 10) / 10) * Math.PI; phaseshift5 = ((Math.random() * 10) / 10) * Math.PI; phaseshift6 = ((Math.random() * 10) / 10) * Math.PI; phaseshift7 = ((Math.random() * 10) / 10) * Math.PI; phaseshift8 = ((Math.random() * 10) / 10) * Math.PI; phaseshift9 = ((Math.random() * 10) / 10) * Math.PI; phaseshift10 = ((Math.random() * 10) / 10) * Math.PI; phaseshift11 = ((Math.random() * 10) / 10) * Math.PI; phaseshift12 = ((Math.random() * 10) / 10) * Math.PI; phaseshift13 = ((Math.random() * 10) / 10) * Math.PI; phaseshift14 = ((Math.random() * 10) / 10) * Math.PI; phaseshift15 = ((Math.random() * 10) / 10) * Math.PI; phaseshift16 = ((Math.random() * 10) / 10) * Math.PI;
r = Math.random() * 256 | 0; g = Math.random() * 256 | 0; b = Math.random() * 256 | 0; var r2 = Math.random() * 256 | 0; var g2 = Math.random() * 256 | 0; var b2 = Math.random() * 256 | 0; var r3 = Math.random() * 256 | 0; var g3 = Math.random() * 256 | 0; var b3 = Math.random() * 256 | 0; var r4 = Math.random() * 256 | 0; var g4 = Math.random() * 256 | 0; var b4 = Math.random() * 256 | 0;
for (colors = 1; colors < 100; colors++) { redwave[colors] = Math.random() * 256 | 0; greenwave[colors] = Math.random() * 256 | 0; bluewave[colors] = Math.random() * 256 | 0; }
var startfreq = 2560;//5120;//2560 for (wavesInit = 1; wavesInit < 100; wavesInit++) { frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0)); frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0));
phaseshiftwave1[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave2[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave3[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave4[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; }
for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
/* var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4)))); red[xi][yi] = amount * r; green[xi][yi] =amount * g; blue[xi][yi] =amount * b;
amount *= (((Math.sin(phaseshift5+(xi*frequency5)) * Math.sin(phaseshift6+(yi*frequency6)))) + ((Math.sin(phaseshift7+(xi*frequency7)) * Math.sin(phaseshift8+(yi*frequency8)))));
red[xi][yi] += amount * r2; green[xi][yi] += amount * g2; blue[xi][yi] += amount * b2;
amount *= (((Math.sin(phaseshift9+(xi*frequency9)) * Math.sin(phaseshift10+(yi*frequency10)))) + ((Math.sin(phaseshift11+(xi*frequency11)) * Math.sin(phaseshift12+(yi*frequency12))))); red[xi][yi] += amount * r3; green[xi][yi] +=amount * g3; blue[xi][yi] +=amount * b3;
amount *= (((Math.sin(phaseshift13+(xi*frequency13)) * Math.sin(phaseshift14+(yi*frequency14)))) + ((Math.sin(phaseshift15+(xi*frequency15)) * Math.sin(phaseshift16+(yi*frequency16))))); red[xi][yi] += amount * r4; green[xi][yi] +=amount * g4; blue[xi][yi] +=amount * b4; */
var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4)))); red[xi][yi] = amount * r; green[xi][yi] =amount * g; blue[xi][yi] =amount * b; for (wave = 1; wave < 20; wave++) {
amount *= ((Math.sin(phaseshiftwave1[wave]+(xi*frequencywave1[wave])) * Math.sin(phaseshiftwave2[wave]+(yi*frequencywave2[wave])))) + ((Math.sin(phaseshiftwave3[wave]+(xi*frequencywave3[wave])) * Math.sin(phaseshiftwave4[wave]+(yi*frequencywave4[wave]))));
red[xi][yi] += amount * redwave[wave]; green[xi][yi] += amount * greenwave[wave]; blue[xi][yi] += amount * bluewave[wave];
}
/*
max = red[xi][yi]; if(green[xi][yi] > max) { max = green[xi][yi]; } if(blue[xi][yi] > max) { max = blue[xi][yi]; } min = red[xi][yi]; if(green[xi][yi] < min) { min = green[xi][yi]; } if(blue[xi][yi] < min) { min = blue[xi][yi]; } var lightness = (0.5 * (max + min)) / 256; red[xi][yi] *= lightness; green[xi][yi] *= lightness; blue[xi][yi] *= lightness; */
red[xi][yi] += Math.random() * 20 | 0; green[xi][yi] += Math.random() * 20 | 0; blue[xi][yi] += Math.random() * 20 | 0;
} } //}
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, red[x][y],green[x][y],blue[x][y], 255); // 255 opaque } } } else {
if(playmovie == 1) {
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, redframe[movietimecounter][x][y],greenframe[movietimecounter][x][y],blueframe[movietimecounter][x][y], 255); // 255 opaque } }
movietimecounter++; if(movietimecounter == frameamount) { movietimecounter = 0; } } }
c.putImageData(imageData, 0, 0);
counter++;
setTimeout("loop()",0); // 100 }
loop();
</script> <br> <button onclick="reset()">New</button> <button onclick="history()">History</button> <button onclick="record()">Record</button> <button onclick="play()">Play</button>
<br> <br>
</html>
|
SiennaForrest | zondag 20 oktober 2013 @ 08:15 |
quote: Op donderdag 17 oktober 2013 21:22 schreef firefly3 het volgende:Nieuwe versie met videobeelden (opslaan als .html file): Klik op "New" voor het uitkiezen van een plaatje. Daarna op "Record" en wacht totdat de knoppen weer oplichten als je erover scrolt, het kan namelijk zo'n max 12 seconde duren voordat het klaar is. Klik daarna op "Play" en het filmpje wordt afgespeeld. Als er een poort bij je thuis wordt geopend naar de hel ofzo moet je mij niet de schuld geven  Leuk topic dit zeg, met veel plezier gelezen! Ik heb ook even via die geplaatste code een plaatje laten genereren, vond hem gelijk al wel 'mensaardig'. Ach ja je hersenen gaan al snel aan de haal met twee 'rondjes'!
Anyway; Geen poort naar de hel lol, maar wel een poort naar een ander heelal?!

[ Bericht 10% gewijzigd door SiennaForrest op 20-10-2013 10:30:52 ] |
firefly3 | dinsdag 22 oktober 2013 @ 08:15 |
quote: Op zondag 20 oktober 2013 08:15 schreef SiennaForrest het volgende:[..] Leuk topic dit zeg, met veel plezier gelezen! Ik heb ook even via die geplaatste code een plaatje laten genereren, vond hem gelijk al wel 'mensaardig'. Ach ja je hersenen gaan al snel aan de haal met twee 'rondjes'! Anyway; Geen poort naar de hel lol, maar wel een poort naar een ander heelal?! [ afbeelding ] Gaaf!  |
Bosbeetle | dinsdag 22 oktober 2013 @ 09:07 |
Ik heb nog wel een leuk voorbeeld van hoe snel mensen ergens dingen in zien, dit is een plaatje van 3 cellen die met 2 kleuren eiwitten erin, gemaakt op vrijdag de dertiende :
 |
firefly3 | woensdag 23 oktober 2013 @ 12:27 |
Ik heb iets bedacht dat misschien wel de stap kan zijn naar fotorealisme!! |
esv7 | woensdag 23 oktober 2013 @ 19:27 |
quote: Ik ben benieuwd, leuk topic zover .
quote: Op zondag 20 oktober 2013 08:15 schreef SiennaForrest het volgende:[..] Leuk topic dit zeg, met veel plezier gelezen! Ik heb ook even via die geplaatste code een plaatje laten genereren, vond hem gelijk al wel 'mensaardig'. Ach ja je hersenen gaan al snel aan de haal met twee 'rondjes'! Anyway; Geen poort naar de hel lol, maar wel een poort naar een ander heelal?! [ afbeelding ] Deed mij gelijk denken aan: . |
SiennaForrest | woensdag 23 oktober 2013 @ 21:29 |
quote: Ik ben erg benieuwd!
quote: Inderdaad! Lol!  |
firefly3 | vrijdag 25 oktober 2013 @ 14:39 |


 |
Bosbeetle | vrijdag 25 oktober 2013 @ 15:05 |
je hebt een algoritme ontwikkeld om de aura's van mensen te fotogaferen  |
Felagund | vrijdag 25 oktober 2013 @ 17:42 |
quote: Op dinsdag 22 oktober 2013 09:07 schreef Bosbeetle het volgende:Ik heb nog wel een leuk voorbeeld van hoe snel mensen ergens dingen in zien, dit is een plaatje van 3 cellen die met 2 kleuren eiwitten erin, gemaakt op vrijdag de dertiende  : [ afbeelding ] Een alien egel.  |
pfaf | vrijdag 25 oktober 2013 @ 18:00 |
Gaaf! Die onderste is een slaapkamer met raam, spiegel, wasbak en lamp aan de muur. Ietwat bewogen natuurlijk. 
Voor mij veruit de beste. Veel meer dan ik had verwacht dat je zou komen. Hulde. |
firefly3 | vrijdag 25 oktober 2013 @ 19:48 |
Bedankt voor de comments!
De laatste drie plaatjes zijn van een nieuwere versie, waarbij de onderste van de meest recente.
Hier is er nog een plaatje van een half gezicht. Hoe lang zal het nog duren totdat het echt helemaal geen vlekjes zijn?

Ik weet nog dat met het gezicht op Mars dat het eerst zo leek:

En daarna zo:

Maar de gezichten lijken hier niet te verdwijnen met nieuwere versies en objecten beginnen langzaam steeds meer op echte objecten te lijken  |
firefly3 | zondag 27 oktober 2013 @ 17:54 |

Ik wil ook zo'n spaceship ^^ |
firefly3 | dinsdag 29 oktober 2013 @ 21:51 |


 |
firefly3 | dinsdag 29 oktober 2013 @ 22:09 |
 |
RobbieRonald | dinsdag 29 oktober 2013 @ 23:24 |
Gaaf hoor. Ik zat net weer wat kiekjes te maken en soms heb je hele reeksen waarin je bizarre gezichten of mooie kosmische stillevens ziet. |
firefly3 | dinsdag 5 november 2013 @ 21:10 |
Thanks. De basis principe is vrij simpel: in plaats van dat er lichtgolven je ogen binnen vallen, laat ik lichtgolven op het tekengebied vallen.


 |
firefly3 | dinsdag 5 november 2013 @ 21:35 |
Wat een hoop spullen hebben ze daar haha
 |
GuitarJJ | dinsdag 5 november 2013 @ 21:52 |
quote: Op maandag 16 september 2013 20:42 schreef firefly3 het volgende:Hier is de html code, kopier het naar een txt file, hernoem het naar .html en open het maar met google chrome. SPOILER <html> <title>Random image</title>
<canvas id="view" width="800", height="600"> Canvas </canvas>
<body bgcolor = "#101010"> </body>
<script type="text/javascript">
var counter = 0;
element = document.getElementById("view"); c = element.getContext("2d");
width = element.width; height = element.height;
imageData = c.createImageData(width, height);
var red = new Array(width); var green = new Array(width); var blue = new Array(width);
var frequencywave1 = new Array(100); var frequencywave2 = new Array(100); var frequencywave3 = new Array(100); var frequencywave4 = new Array(100); var phaseshiftwave1 = new Array(100); var phaseshiftwave2 = new Array(100); var phaseshiftwave3 = new Array(100); var phaseshiftwave4 = new Array(100); var redwave = new Array(100); var greenwave = new Array(100); var bluewave = new Array(100);
var historyred = new Array(width); var historygreen = new Array(width); var historyblue = new Array(width);
for (i = 0; i < width; i++) { red[i] = new Array(height); green[i] = new Array(height); blue[i] = new Array(height);
historyred[i] = new Array(height); historygreen[i] = new Array(height); historyblue[i] = new Array(height);
for (j = 0; j < height; j++) { red[i][j] = 0; green[i][j] = 0; blue[i][j] = 0;
historyred[i][j] = 0; historygreen[i][j] = 0; historyblue[i][j] = 0; } }
function setPixel(imageData, x, y, r, g, b, a) { index = (x + y * imageData.width) * 4; imageData.data[index+0] = r; imageData.data[index+1] = g; imageData.data[index+2] = b; imageData.data[index+3] = a; }
function reset() { counter = 0;
for (xc = 0; xc < width; xc++) { for (yc = 0; yc < height; yc++) { historyred[xc][yc] = red[xc][yc]; historygreen[xc][yc] = green[xc][yc]; historyblue[xc][yc] = blue[xc][yc]; red[xc][yc] = 0; green[xc][yc] = 0; blue[xc][yc] = 0; } } }
function history() { for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, historyred[x][y],historygreen[x][y],historyblue[x][y], 255); } }
c.putImageData(imageData, 0, 0); }
function diff(num1, num2){ return (num1 > num2)? num1-num2 : num2-num1 }
function loop() { if(counter == 0) { for(w = 0; w < 1; w++) {
frequency1 = (Math.random() * 10) / 2560; frequency2 = (Math.random() * 10) / 2560; frequency3 = (Math.random() * 10) / 1280; frequency4 = (Math.random() * 10) / 1280; phaseshift1 = ((Math.random() * 10) / 10) * Math.PI; phaseshift2 = ((Math.random() * 10) / 10) * Math.PI; phaseshift3 = ((Math.random() * 10) / 10) * Math.PI; phaseshift4 = ((Math.random() * 10) / 10) * Math.PI;
var r = Math.random() * 256 | 0; var g = Math.random() * 256 | 0; var b = Math.random() * 256 | 0;
for (colors = 0; colors < 100; colors++) { redwave[colors] = Math.random() * 256 | 0; greenwave[colors] = Math.random() * 256 | 0; bluewave[colors] = Math.random() * 256 | 0; }
var startfreq = 2560;// //10240; // 5120 2560
for (wavesInit = 0; wavesInit < 100; wavesInit++) {
/* frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / wavesInit); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / wavesInit); frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / wavesInit); frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / wavesInit); frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit-1))); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit-1))); frequencywave3[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit))); frequencywave4[wavesInit] = (Math.random() * 10) / (startfreq / (Math.pow(2,wavesInit))); */
frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*1.5)); frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*1.5)); frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*1.5)); frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*1.5));
phaseshiftwave1[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave2[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave3[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave4[wavesInit] = ((Math.random() * 10) / 10) * Math.PI;
}
for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4)))); red[xi][yi] = amount * r; green[xi][yi] = amount * g; blue[xi][yi] =amount * b; for (wave = 1; wave < 20; wave++) {
amount *= ((Math.sin(phaseshiftwave1[wave]+(xi*frequencywave1[wave])) * Math.sin(phaseshiftwave2[wave]+(yi*frequencywave2[wave])))) + ((Math.sin(phaseshiftwave3[wave]+(xi*frequencywave3[wave])) * Math.sin(phaseshiftwave4[wave]+(yi*frequencywave4[wave]))));
red[xi][yi] += amount * redwave[wave]; green[xi][yi] += amount * greenwave[wave]; blue[xi][yi] += amount * bluewave[wave];
}
//red[xi][yi] += Math.random() * 20 | 0; //green[xi][yi] += Math.random() * 20 | 0; //blue[xi][yi] += Math.random() * 20 | 0; } } }
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, red[x][y],green[x][y],blue[x][y], 255); // 255 opaque } } } else {
}
c.putImageData(imageData, 0, 0);
counter++;
setTimeout("loop()",0); // 100 }
loop();
</script> <br> <button onclick="reset()">New</button> <button onclick="history()">History</button> <br> <br>
</html>
Eerst creatie die er bij mij uit komt rollen:

Een man die iets lijkt te willen geven aan een vrouw. Ziet er bijna te perfect uit  |
firefly3 | dinsdag 5 november 2013 @ 22:16 |
quote: Gaaf! Dit is mijn laatste versie overigens (Bij deze versie doet record en play het niet, dat bouw ik er later weer opnieuw in):
SPOILER <html> <title>Random image</title>
<canvas id="view" width="500", height="500"> Canvas </canvas>
<body bgcolor = "#101010"> </body>
<script type="text/javascript">
var counter = 0;
element = document.getElementById("view"); c = element.getContext("2d");
width = element.width; height = element.height;
imageData = c.createImageData(width, height);
var red = new Array(width); var green = new Array(width); var blue = new Array(width); var brightness = new Array(width);
var playmovie = 0; var movietimecounter = 0;
var frameamount = 10; var redframe = new Array(frameamount); var greenframe = new Array(frameamount); var blueframe = new Array(frameamount);
var frequencywave1A = new Array(100); var frequencywave1B = new Array(100); var frequencywave1C = new Array(100); var frequencywave1D = new Array(100); var frequencywave1E = new Array(100); var frequencywave1F = new Array(100); var phaseshiftwave1A = new Array(100); var phaseshiftwave1B = new Array(100); var phaseshiftwave1C = new Array(100); var phaseshiftwave1D = new Array(100); var phaseshiftwave1E = new Array(100); var phaseshiftwave1F = new Array(100);
var amountofsubwaves = 5; var redsubwave = new Array(amountofsubwaves); var greensubwave = new Array(amountofsubwaves); var bluesubwave = new Array(amountofsubwaves); var frequencysubwaveA = new Array(amountofsubwaves); var frequencysubwaveB = new Array(amountofsubwaves); var frequencysubwaveC = new Array(amountofsubwaves); var frequencysubwaveD = new Array(amountofsubwaves); var phaseshiftsubwaveA = new Array(amountofsubwaves); var phaseshiftsubwaveB = new Array(amountofsubwaves); var phaseshiftsubwaveC = new Array(amountofsubwaves); var phaseshiftsubwaveD = new Array(amountofsubwaves);
var redwave = new Array(100); var greenwave = new Array(100); var bluewave = new Array(100);
var historyred = new Array(width); var historygreen = new Array(width); var historyblue = new Array(width);
var r; var g; var b;
var intensity = 1.0;
for (sw = 0; sw < amountofsubwaves; sw++) { redsubwave[sw] = new Array(100); greensubwave[sw] = new Array(100); bluesubwave[sw] = new Array(100);
frequencysubwaveA[sw] = new Array(100); frequencysubwaveB[sw] = new Array(100); frequencysubwaveC[sw] = new Array(100); frequencysubwaveD[sw] = new Array(100); phaseshiftsubwaveA[sw] = new Array(100); phaseshiftsubwaveB[sw] = new Array(100); phaseshiftsubwaveC[sw] = new Array(100); phaseshiftsubwaveD[sw] = new Array(100); }
for (i = 0; i < width; i++) { red[i] = new Array(height); green[i] = new Array(height); blue[i] = new Array(height);
brightness[i] = new Array(height);
historyred[i] = new Array(height); historygreen[i] = new Array(height); historyblue[i] = new Array(height);
for (j = 0; j < height; j++) { red[i][j] = 0; green[i][j] = 0; blue[i][j] = 0; brightness[i][j] = 0;
historyred[i][j] = 0; historygreen[i][j] = 0; historyblue[i][j] = 0; } }
for (f = 0; f < frameamount; f++) { redframe[f] = new Array(width); greenframe[f] = new Array(width); blueframe[f] = new Array(width); for(k = 0; k < width; k++) { redframe[f][k] = new Array(height); greenframe[f][k] = new Array(height); blueframe[f][k] = new Array(height); for (l = 0; l < height; l++) { redframe[f][k][l] = 0; greenframe[f][k][l] = 0; blueframe[f][k][l] = 0; } } }
function setPixel(imageData, x, y, r, g, b, a) { index = (x + y * imageData.width) * 4; imageData.data[index+0] = r; imageData.data[index+1] = g; imageData.data[index+2] = b; imageData.data[index+3] = a; }
function reset() { playmovie = 0; counter = 0;
for (xc = 0; xc < width; xc++) { for (yc = 0; yc < height; yc++) { historyred[xc][yc] = red[xc][yc]; historygreen[xc][yc] = green[xc][yc]; historyblue[xc][yc] = blue[xc][yc]; red[xc][yc] = 0; green[xc][yc] = 0; blue[xc][yc] = 0; } } }
function history() { for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, historyred[x][y],historygreen[x][y],historyblue[x][y], 255); } }
c.putImageData(imageData, 0, 0); }
function diff(num1, num2){ return (num1 > num2)? num1-num2 : num2-num1 }
function record() { for(f = 0; f < frameamount; f++) { for (wavesInit = 1; wavesInit < 100; wavesInit++) { //frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); //frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); //frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0)); //frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0));
phaseshiftwave1[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave2[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave3[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave4[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave1[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave2[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave3[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave4[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); } for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4))));
redframe[f][xi][yi] = amount * r; greenframe[f][xi][yi] = amount * g; blueframe[f][xi][yi] = amount * b; for (wave = 1; wave < 20; wave++) {
amount *= ((Math.sin(phaseshiftwave1[wave]+(xi*frequencywave1[wave])) * Math.sin(phaseshiftwave2[wave]+(yi*frequencywave2[wave])))) + ((Math.sin(phaseshiftwave3[wave]+(xi*frequencywave3[wave])) * Math.sin(phaseshiftwave4[wave]+(yi*frequencywave4[wave]))));
var amountsub = ((Math.sin(phaseshiftsubwave1[wave]+(xi*frequencysubwave1[wave])) * Math.sin(phaseshiftsubwave2[wave]+(yi*frequencysubwave2[wave])))) + ((Math.sin(phaseshiftsubwave3[wave]+(xi*frequencysubwave3[wave])) * Math.sin(phaseshiftsubwave4[wave]+(yi*frequencysubwave4[wave])))); var amountsubneg = 1.0 - amountsub;
redframe[f][xi][yi] += intensity * ((amount * amountsubneg * redwave[wave]) + (amount * amountsub * redsubwave[wave])); greenframe[f][xi][yi] += intensity * ((amount * amountsubneg * greenwave[wave]) + (amount * amountsub * greensubwave[wave])); blueframe[f][xi][yi] += intensity * ((amount * amountsubneg * bluewave[wave]) + (amount * amountsub * bluesubwave[wave]));
}
redframe[f][xi][yi] += Math.random() * 20 | 0; greenframe[f][xi][yi] += Math.random() * 20 | 0; blueframe[f][xi][yi] += Math.random() * 20 | 0;
} } } }
function play() { playmovie = 1; } function loop() { if(counter == 0) {
var frequency1 = (Math.random() * 10) / 2560; var frequency2 = (Math.random() * 10) / 2560; var frequency3 = (Math.random() * 10) / 1280; var frequency4 = (Math.random() * 10) / 1280;
var phaseshift1 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift2 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift3 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift4 = ((Math.random() * 10) / 10) * Math.PI;
var frequency5 = (Math.random() * 10) / 2560; var frequency6 = (Math.random() * 10) / 2560; var frequency7 = (Math.random() * 10) / 1280; var frequency8 = (Math.random() * 10) / 1280;
var phaseshift5 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift6 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift7 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift8 = ((Math.random() * 10) / 10) * Math.PI; r = Math.random() * 256 | 0; g = Math.random() * 256 | 0; b = Math.random() * 256 | 0;
var startfreq = 1700;//2560;//1280;//2560;//5120;//2560 var startsubfreq = 640;//2560;//1280;//2560;//320;//640;
var amountsub = new Array(amountofsubwaves); var subpercentage = new Array(amountofsubwaves);
for (wavesInit = 1; wavesInit < 100; wavesInit++) { frequencywave1A[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); frequencywave1B[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); frequencywave1C[wavesInit] = (Math.random() * 10) / ((startfreq / 2) / (wavesInit*2.0)); frequencywave1D[wavesInit] = (Math.random() * 10) / ((startfreq / 2) / (wavesInit*2.0)); frequencywave1E[wavesInit] = (Math.random() * 10) / ((startfreq / 2) / (wavesInit*2.0)); frequencywave1F[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0));
phaseshiftwave1A[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1B[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1C[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1D[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1E[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1F[wavesInit] = ((Math.random() * 10) / 10) * Math.PI;
for (subwaves = 0; subwaves < amountofsubwaves; subwaves++) { frequencysubwaveA[subwaves][wavesInit] = (Math.random() * 10) / (startsubfreq / (wavesInit*2.0)); frequencysubwaveB[subwaves][wavesInit] = (Math.random() * 10) / (startsubfreq / (wavesInit*2.0)); frequencysubwaveC[subwaves][wavesInit] = (Math.random() * 10) / ((startsubfreq/2) / (wavesInit*2.0)); frequencysubwaveD[subwaves][wavesInit] = (Math.random() * 10) / ((startsubfreq/2) / (wavesInit*2.0));
phaseshiftsubwaveA[subwaves][wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftsubwaveB[subwaves][wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftsubwaveC[subwaves][wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftsubwaveD[subwaves][wavesInit] = ((Math.random() * 10) / 10) * Math.PI; }
// colors redwave[wavesInit] = Math.random() * 256 | 0; greenwave[wavesInit] = Math.random() * 256 | 0; bluewave[wavesInit] = Math.random() * 256 | 0; for (subwaves = 0; subwaves < amountofsubwaves; subwaves++) { redsubwave[subwaves][wavesInit] = Math.random() * 256 | 0; greensubwave[subwaves][wavesInit] = Math.random() * 256 | 0; bluesubwave[subwaves][wavesInit] = Math.random() * 256 | 0; } }
for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
red[xi][yi] = 0; green[xi][yi] = 0; blue[xi][yi] = 0; var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4)))) - ((Math.sin(phaseshift5+(xi*frequency5)) * Math.sin(phaseshift6+(yi*frequency6)))); red[xi][yi] = intensity * amount * r; green[xi][yi] = intensity *amount * g; blue[xi][yi] = intensity *amount * b;
var amountb = ((Math.sin(phaseshift5+(xi*frequency5)) * Math.sin(phaseshift6+(yi*frequency6)))) + ((Math.sin(phaseshift7+(xi*frequency7)) * Math.sin(phaseshift8+(yi*frequency8)))); brightness[xi][yi] = amountb; for (wave = 1; wave < 20; wave++) { amount *= (Math.sin(phaseshiftwave1A[wave]+(xi*frequencywave1A[wave])) * Math.sin(phaseshiftwave1B[wave]+(yi*frequencywave1B[wave]))) + (Math.sin(phaseshiftwave1C[wave]+(xi*frequencywave1C[wave])) * Math.sin(phaseshiftwave1D[wave]+(yi*frequencywave1D[wave]))) - (Math.sin(phaseshiftwave1E[wave]+(xi*frequencywave1E[wave])) * Math.sin(phaseshiftwave1F[wave]+(yi*frequencywave1F[wave])));
var total = 0; for (as = 0; as < amountofsubwaves; as++) { amountsub[as] = 2.0 + (Math.sin(phaseshiftsubwaveA[as][wave]+(xi*frequencysubwaveA[as][wave])) * Math.sin(phaseshiftsubwaveB[as][wave]+(yi*frequencysubwaveB[as][wave]))) + (Math.sin(phaseshiftsubwaveC[as][wave]+(xi*frequencysubwaveC[as][wave])) * Math.sin(phaseshiftsubwaveD[as][wave]+(yi*frequencysubwaveD[as][wave]))); total += amountsub[as]; } var totalnewred = 0; var totalnewgreen = 0; var totalnewblue = 0;
for (asc = 0; asc < amountofsubwaves; asc++) { subpercentage[asc] = amountsub[asc] / total;
totalnewred += (amount * subpercentage[asc] * redsubwave[asc][wave]); totalnewgreen += (amount * subpercentage[asc] * greensubwave[asc][wave]); totalnewblue += (amount * subpercentage[asc] * bluesubwave[asc][wave]);
} red[xi][yi] += intensity * totalnewred; green[xi][yi] += intensity * totalnewgreen; blue[xi][yi] += intensity * totalnewblue;
}
red[xi][yi] += Math.random() * 20 | 0; green[xi][yi] += Math.random() * 20 | 0; blue[xi][yi] += Math.random() * 20 | 0;
} }
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, red[x][y],green[x][y],blue[x][y], 255); // 255 opaque } } } else {
if(playmovie == 1) {
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, redframe[movietimecounter][x][y],greenframe[movietimecounter][x][y],blueframe[movietimecounter][x][y], 255); // 255 opaque } }
movietimecounter++; if(movietimecounter == frameamount) { movietimecounter = 0; }
} }
c.putImageData(imageData, 0, 0);
counter++;
setTimeout("loop()",0); // 100 }
loop();
</script> <br> <button onclick="reset()">New</button> <button onclick="history()">History</button> <button onclick="record()">Record</button> <button onclick="play()">Play</button>
<br> <br>
</html>
|
firefly3 | dinsdag 5 november 2013 @ 22:27 |
Onderwaterfoto:
 |
firefly3 | zondag 10 november 2013 @ 18:55 |

(Ogen rechtsboven)


Rechts staat er iemand

 |
firefly3 | zondag 10 november 2013 @ 19:10 |
buitenaards stad
 |
firefly3 | zondag 10 november 2013 @ 19:44 |
 |
firefly3 | donderdag 14 november 2013 @ 21:12 |



 |
ludicrous_monk | donderdag 14 november 2013 @ 21:18 |
Het blijft een beetje veel van hetzelfde. Misschien eens een ander algoritme? |
Molurus | donderdag 14 november 2013 @ 21:31 |
Ik had hier al een tijdje niet meer gekeken... man man man, wat een koele plaatjes!
 |
firefly3 | vrijdag 15 november 2013 @ 21:22 |
quote: Ben langzaam continue dingen aan het verbeteren / fixen / veranderen 
quote: Bedankt! |
firefly3 | vrijdag 15 november 2013 @ 21:24 |


 |
pfaf | zaterdag 16 november 2013 @ 00:04 |
Het topic zit wat mij betreft momenteel aardig in de uncanny valley. |
Yuri_Boyka | zaterdag 16 november 2013 @ 00:08 |
Creepy foto's. |
firefly3 | zaterdag 16 november 2013 @ 17:01 |
quote: Moest het ff opzoeken maar thanks 
quote: ^^ |
firefly3 | zaterdag 23 november 2013 @ 17:05 |
 |
Faux. | maandag 25 november 2013 @ 18:56 |
quote: Op maandag 10 juni 2013 23:50 schreef Asphias het volgende:tja, de vraag is natuurlijk bij welke resolutie we nog foto's kunnen herkennen, dat kan volgens mij best laag zijn. even wat voorbeeltjes: een appel met resolutie 540x540, diezelfde met 34x34, en nog eens met 17x17 [ afbeelding ] [ afbeelding ] [ afbeelding ] 17x17 begint erg twijfelachtig te worden, dus laten we zeggen dat 34x34 het minimum is. we zouden het waarschijnljik met 10 verschillende kleuren ook nog net kunnen zien, dus dan kom je uit op 10 34x34, oftewel 10 1156, oftewel, SPOILER 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
zoveel verschillende plaatjes kan je dan al maken. sure, het is mogelijk, maar even ter vergelijking, als je elke seconde vanaf de oerknal tot nu één plaatje zou bekijken, dan zit je pas op 10^17 plaatjes, nog geen fractie van het totaal aantal plaatjes wat je kan maken. het kán dus, maar het is zwaar onrealistisch dat 't gebeurt. Ik las op internet dat een menselijk oog 576 megapixels heeft. Hoeveel verschillende plaatjes kan je dan maken?  |
Asphias | maandag 25 november 2013 @ 21:51 |
quote: Op maandag 25 november 2013 18:56 schreef Faux. het volgende:[..] Ik las op internet dat een menselijk oog 576 megapixels heeft. Hoeveel verschillende plaatjes kan je dan maken?  tja, bij mensen is het natuurlijk wat ingewikkelder, de vergelijking met megapixels valt natuurlijk niet één op één te maken, maar er vanuitgaande dat het internet het bij het juiste eind heeft:
2^576000000=±3*10^173393277 , dusss een 3 met 173393277 nullen erachter. ga ik maar even niet uitschrijven ;-) |
Faux. | maandag 25 november 2013 @ 21:53 |
quote: Op maandag 25 november 2013 21:51 schreef Asphias het volgende:[..] tja, bij mensen is het natuurlijk wat ingewikkelder, de vergelijking met megapixels valt natuurlijk niet één op één te maken, maar er vanuitgaande dat het internet het bij het juiste eind heeft: 2^576000000=±3*10^173393277 , dusss een 3 met 173393277 nullen erachter. ga ik maar even niet uitschrijven ;-) Want wat is de berekening? Ik las kleurdiepte^resolutie maar ik weet niet hoeveel kleuren een mens kan onderscheiden en niet wat de resolutie is van 576 megapixels  Dank voor je antwoord in ieder geval  |
devzero | maandag 25 november 2013 @ 22:04 |
quote: Als een pixel zwart of wit is, dan klopt je berekening. Echter, de schatting is dat het menselijk oog tussen 100K en 10M verschillende kleurvariaties kan zien (bron). Dus dan wordt het een iets groter getal (hoewel het me sterk lijkt dat je 10M kleuren tegelijkertijd kan zien).
quote: ga ik maar even niet uitschrijven ;-)
Samengevat: heeel veel. |
Faux. | maandag 25 november 2013 @ 22:07 |
quote: Op maandag 25 november 2013 22:04 schreef devzero het volgende:[..] Als een pixel zwart of wit is, dan klopt je berekening. Echter, de schatting is dat het menselijk oog tussen 100K en 10M verschillende kleurvariaties kan zien (bron). Dus dan wordt het een iets groter getal (hoewel het me sterk lijkt dat je 10M kleuren tegelijkertijd kan zien). [..] Samengevat: heeel veel. Laten we veilig gaan en voor 10 miljoen verschillende kleuren gaan.
10 000 000576000000 mogelijke beelden? |
devzero | maandag 25 november 2013 @ 22:07 |
Zelfs met een conservative 100K is het nog erg veel! |
Faux. | maandag 25 november 2013 @ 22:08 |
Windows Rekenmachine geeft een ongeldige invoer als ik het uit probeer te rekenen  |
Faux. | maandag 25 november 2013 @ 22:10 |
http://www.wolframalpha.com/input/?i=10000000%5E576000000
Dus als je al deze afbeeldingen weet te maken, heb je eigenlijk elke mogelijke foto?  |
Asphias | maandag 25 november 2013 @ 22:14 |
quote: Op maandag 25 november 2013 21:53 schreef Faux. het volgende:[..] Want wat is de berekening? Ik las kleurdiepte^resolutie maar ik weet niet hoeveel kleuren een mens kan onderscheiden en niet wat de resolutie is van 576 megapixels  Dank voor je antwoord in ieder geval  een megapixel is simpelweg 1000000 pixels(mega staat voor miljoen). een resolutie van 1000x1000 zou hieraan voldoen.
omdat ik niet weet hoe het internet heeft besloten dat het oog 576 megapixels heeft, heb ik als ondergrens genomen dat elke pixel "aan" of "uit" kan staan, dus twee tot de macht 576 miljoen.
het oog bestaat echter niet uit pixels, maar uit staafjes en kegels, die weer hun signalen in groepjes doorgeven aan zenuwcellen, en die meer of minder gevoellig zijn bij veel of weinig licht. en niet elke cel die licht ziet geeft continue signalen door, etc.
het blijft dus een hele grove benadering.
ben trouwens via wikipedia hierop gekomen: http://www.newscientist.c(...)-speed-of-sight.html
blijkbaar geeft het oog signalen door met ongeveer 8,75 megabit per seconde, ik ben benieuwd wat je daarmee kan zeggen over de gemiddelde resolutie van de "video" die je oog maakt  |
Asphias | maandag 25 november 2013 @ 22:19 |
quote: yep,
http://www.wolframalpha.c(...)+universe&lk=4&num=1 http://www.wolframalpha.c(...)verse+in+planck+time http://www.wolframalpha.c(...)toms+in+the+universe
sterkte |
Faux. | maandag 25 november 2013 @ 22:20 |
quote: Ik wil echt heel graag een nieuwe achtergrond voor m'n mobiel. Eentje met m'n beste vriend, maar die heeft een hekel aan foto's. Dus dan maar op deze manier 
SPOILER dank voor je hulp 
|
firefly3 | donderdag 28 november 2013 @ 08:07 |
De Mantisgarnaal kan zestien basiskleuren zien. Wij maar drie. Voor hun ziet de wereld er nog mooier uit dan wij kunnen inbeelden. Zelfs met 1 basis kleur erbij kunnen we weer veel nieuwe kleuren mengen  |
ludicrous_monk | donderdag 28 november 2013 @ 19:55 |
quote: Op donderdag 28 november 2013 08:07 schreef firefly3 het volgende:De Mantisgarnaal kan zestien basiskleuren zien. Wij maar drie. Voor hun ziet de wereld er nog mooier uit dan wij kunnen inbeelden. Zelfs met 1 basis kleur erbij kunnen we weer veel nieuwe kleuren mengen  Stel dat je er honderden had, dan kon je zelfs zien dat de zon grotendeels uit waterstof bestaat  |
rekenwonder | donderdag 28 november 2013 @ 20:33 |
quote: Op donderdag 13 juni 2013 07:24 schreef firefly3 het volgende:Ik heb een random image generator gemaakt, waarbij het telkens automatisch checkt of het nieuwe plaatje minder entropy bevat dan de vorige. Als dat zo is, laat ik dat plaatje zien. Hoe meet je de entropie? |
Eyjafjallajoekull | vrijdag 29 november 2013 @ 03:40 |
quote: Raar concept om over na te denken. Stel je hebt een database met elke mogelijke foto/afbeelding, en je pakt er 10 uit. Wat zou je dan verwachten te zien op die 10 afbeeldingen? 
Voor mijn gevoel klopt het toch niet helemaal  |
Bosbeetle | vrijdag 29 november 2013 @ 09:37 |
quote: Op vrijdag 29 november 2013 03:40 schreef Eyjafjallajoekull het volgende:[..] Raar concept om over na te denken. Stel je hebt een database met elke mogelijke foto/afbeelding, en je pakt er 10 uit. Wat zou je dan verwachten te zien op die 10 afbeeldingen?  Voor mijn gevoel klopt het toch niet helemaal  Dan is je sample size waarschijnlijk te klein en zie je idd niets. |
firefly3 | vrijdag 29 november 2013 @ 17:50 |
quote: Ik hield een score bij voor vergelijkingen met naburige pixels. Maar hier was ik totaal van af gestapt. |
LXIV | zondag 1 december 2013 @ 14:24 |
quote: Op donderdag 28 november 2013 08:07 schreef firefly3 het volgende:De Mantisgarnaal kan zestien basiskleuren zien. Wij maar drie. Voor hun ziet de wereld er nog mooier uit dan wij kunnen inbeelden. Zelfs met 1 basis kleur erbij kunnen we weer veel nieuwe kleuren mengen  Met 3 basiskleuren kunnen wij 8 hoofdkleuren zien: zwart, (niks) rood, (alleen rood) groen, (alleen groen) blauw, (alleen blauw) geel, (groen en rood) paars, (rood en blauw) turqouise (groen en blauw) wit (groen, blauw en rood)
Alle andere kleuren (zoals donkergroen en roze (lichtrood) reken ik dan niet mee.
Maar die garnaal ziet dus 2^16 = 65536 verschillende HOOFDkleuren! Die dus allemaal een eigen naam zouden moeten hebben! Onvoorstelbaar dat een zó onbetekenend dier als een garnaal de wereld in zó veel kleuren waarneemt! |
firefly3 | maandag 2 december 2013 @ 08:16 |
quote: Op zondag 1 december 2013 14:24 schreef LXIV het volgende:[..] Met 3 basiskleuren kunnen wij 8 hoofdkleuren zien: zwart, (niks) rood, (alleen rood) groen, (alleen groen) blauw, (alleen blauw) geel, (groen en rood) paars, (rood en blauw) turqouise (groen en blauw) wit (groen, blauw en rood) Alle andere kleuren (zoals donkergroen en roze (lichtrood) reken ik dan niet mee. Maar die garnaal ziet dus 2^16 = 65536 verschillende HOOFDkleuren! Die dus allemaal een eigen naam zouden moeten hebben! Onvoorstelbaar dat een zó onbetekenend dier als een garnaal de wereld in zó veel kleuren waarneemt! Wow ongelooflijk!! |
Bosbeetle | maandag 2 december 2013 @ 09:13 |
quote: Op donderdag 28 november 2013 08:07 schreef firefly3 het volgende:De Mantisgarnaal kan zestien basiskleuren zien. Wij maar drie. Voor hun ziet de wereld er nog mooier uit dan wij kunnen inbeelden. Zelfs met 1 basis kleur erbij kunnen we weer veel nieuwe kleuren mengen 
garnaal  |
ludicrous_monk | maandag 2 december 2013 @ 19:32 |
Wordt een beetje offtopic deze discussie. Mensen nog meer ideeën/algoritmes voor fotogeneratie? |
firefly3 | dinsdag 3 december 2013 @ 08:46 |
Ik heb een idee ineens. Kleur met licht (energie) vermenigvuldigen. Dat is al wat slechts op de eerste golf gebeurd die namelijk ook het grootst is. |
firefly3 | dinsdag 3 december 2013 @ 21:06 |
HET IS GELUKT!!! |
firefly3 | dinsdag 3 december 2013 @ 21:06 |





[ Bericht 13% gewijzigd door firefly3 op 03-12-2013 21:29:24 ] |
firefly3 | dinsdag 3 december 2013 @ 21:40 |
Meer detail in de objecten, ogen enzo
 |
Maanvis | woensdag 4 december 2013 @ 22:15 |
is daar ook een nieuw javascriptje voor? |
firefly3 | donderdag 5 december 2013 @ 07:32 |
Hier is de code. Weer hernoemen naar .html en met Google chrome openen. Als je "wachten" ziet, moet je gewoon op wachten klikken of wachten, want deze versie heeft wat meer tijd nodig.
SPOILER <html> <title>Random image</title>
<canvas id="view" width="500", height="500"> Canvas </canvas>
<body bgcolor = "#101010"> </body>
<script type="text/javascript">
var counter = 0;
element = document.getElementById("view"); c = element.getContext("2d");
width = element.width; height = element.height;
imageData = c.createImageData(width, height);
var red = new Array(width); var green = new Array(width); var blue = new Array(width); var brightness = new Array(width);
var playmovie = 0; var movietimecounter = 0;
var frameamount = 10; var redframe = new Array(frameamount); var greenframe = new Array(frameamount); var blueframe = new Array(frameamount);
var waveblendproperty = new Array(100);
var frequencywave1A = new Array(100); var frequencywave1B = new Array(100); var frequencywave1C = new Array(100); var frequencywave1D = new Array(100); var frequencywave1E = new Array(100); var frequencywave1F = new Array(100); var phaseshiftwave1A = new Array(100); var phaseshiftwave1B = new Array(100); var phaseshiftwave1C = new Array(100); var phaseshiftwave1D = new Array(100); var phaseshiftwave1E = new Array(100); var phaseshiftwave1F = new Array(100);
var amountofsubwaves = 6;
var redsubwave = new Array(100); var redsubwaveTEMP = new Array(100); var greensubwave = new Array(100); var bluesubwave = new Array(100);
var frequencysubwaveA = new Array(100); var frequencysubwaveB = new Array(100); var frequencysubwaveC = new Array(100); var frequencysubwaveD = new Array(100); var frequencysubwaveE = new Array(100); var frequencysubwaveF = new Array(100); var phaseshiftsubwaveA = new Array(100); var phaseshiftsubwaveB = new Array(100); var phaseshiftsubwaveC = new Array(100); var phaseshiftsubwaveD = new Array(100); var phaseshiftsubwaveE = new Array(100); var phaseshiftsubwaveF = new Array(100);
var frequencysubwaveATEMP = new Array(100); var frequencysubwaveBTEMP = new Array(100); var frequencysubwaveCTEMP = new Array(100); var frequencysubwaveDTEMP = new Array(100); var phaseshiftsubwaveATEMP = new Array(100); var phaseshiftsubwaveBTEMP = new Array(100); var phaseshiftsubwaveCTEMP = new Array(100); var phaseshiftsubwaveDTEMP = new Array(100);
var redwave = new Array(100); var greenwave = new Array(100); var bluewave = new Array(100);
var historyred = new Array(width); var historygreen = new Array(width); var historyblue = new Array(width);
var r; var g; var b;
var intensity = 1.0;
for (w = 0; w < 100; w++) { redsubwave[w] = new Array(amountofsubwaves); redsubwaveTEMP[w] = new Array(amountofsubwaves); greensubwave[w] = new Array(amountofsubwaves); bluesubwave[w] = new Array(amountofsubwaves);
frequencysubwaveA[w] = new Array(amountofsubwaves); frequencysubwaveB[w] = new Array(amountofsubwaves); frequencysubwaveC[w] = new Array(amountofsubwaves); frequencysubwaveD[w] = new Array(amountofsubwaves); frequencysubwaveE[w] = new Array(amountofsubwaves); frequencysubwaveF[w] = new Array(amountofsubwaves); phaseshiftsubwaveA[w] = new Array(amountofsubwaves); phaseshiftsubwaveB[w] = new Array(amountofsubwaves); phaseshiftsubwaveC[w] = new Array(amountofsubwaves); phaseshiftsubwaveD[w] = new Array(amountofsubwaves); phaseshiftsubwaveE[w] = new Array(amountofsubwaves); phaseshiftsubwaveF[w] = new Array(amountofsubwaves);
frequencysubwaveATEMP[w] = new Array(amountofsubwaves); frequencysubwaveBTEMP[w] = new Array(amountofsubwaves); frequencysubwaveCTEMP[w] = new Array(amountofsubwaves); frequencysubwaveDTEMP[w] = new Array(amountofsubwaves); phaseshiftsubwaveATEMP[w] = new Array(amountofsubwaves); phaseshiftsubwaveBTEMP[w] = new Array(amountofsubwaves); phaseshiftsubwaveCTEMP[w] = new Array(amountofsubwaves); phaseshiftsubwaveDTEMP[w] = new Array(amountofsubwaves); }
for (i = 0; i < width; i++) { red[i] = new Array(height); green[i] = new Array(height); blue[i] = new Array(height);
brightness[i] = new Array(height);
historyred[i] = new Array(height); historygreen[i] = new Array(height); historyblue[i] = new Array(height);
for (j = 0; j < height; j++) { red[i][j] = 0; green[i][j] = 0; blue[i][j] = 0; brightness[i][j] = 0;
historyred[i][j] = 0; historygreen[i][j] = 0; historyblue[i][j] = 0; } }
for (f = 0; f < frameamount; f++) { redframe[f] = new Array(width); greenframe[f] = new Array(width); blueframe[f] = new Array(width); for(k = 0; k < width; k++) { redframe[f][k] = new Array(height); greenframe[f][k] = new Array(height); blueframe[f][k] = new Array(height); for (l = 0; l < height; l++) { redframe[f][k][l] = 0; greenframe[f][k][l] = 0; blueframe[f][k][l] = 0; } } }
function setPixel(imageData, x, y, r, g, b, a) { index = (x + y * imageData.width) * 4; imageData.data[index+0] = r; imageData.data[index+1] = g; imageData.data[index+2] = b; imageData.data[index+3] = a; }
function reset() { playmovie = 0; counter = 0;
for (xc = 0; xc < width; xc++) { for (yc = 0; yc < height; yc++) { historyred[xc][yc] = red[xc][yc]; historygreen[xc][yc] = green[xc][yc]; historyblue[xc][yc] = blue[xc][yc]; red[xc][yc] = 0; green[xc][yc] = 0; blue[xc][yc] = 0; } } }
function history() { for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, historyred[x][y],historygreen[x][y],historyblue[x][y], 255); } }
c.putImageData(imageData, 0, 0); }
function diff(num1, num2){ return (num1 > num2)? num1-num2 : num2-num1 }
function record() { for(f = 0; f < frameamount; f++) { for (wavesInit = 1; wavesInit < 100; wavesInit++) { //frequencywave1[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); //frequencywave2[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); //frequencywave3[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0)); //frequencywave4[wavesInit] = (Math.random() * 10) / ((startfreq/2) / (wavesInit*2.0));
phaseshiftwave1[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave2[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave3[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave4[wavesInit] += (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave1[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave2[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave3[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); phaseshiftwave4[wavesInit] -= (0.04*((Math.random() * 10) / 10) * Math.PI); } for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4))));
redframe[f][xi][yi] = amount * r; greenframe[f][xi][yi] = amount * g; blueframe[f][xi][yi] = amount * b; for (wave = 1; wave < 20; wave++) {
amount *= ((Math.sin(phaseshiftwave1[wave]+(xi*frequencywave1[wave])) * Math.sin(phaseshiftwave2[wave]+(yi*frequencywave2[wave])))) + ((Math.sin(phaseshiftwave3[wave]+(xi*frequencywave3[wave])) * Math.sin(phaseshiftwave4[wave]+(yi*frequencywave4[wave]))));
var amountsub = ((Math.sin(phaseshiftsubwave1[wave]+(xi*frequencysubwave1[wave])) * Math.sin(phaseshiftsubwave2[wave]+(yi*frequencysubwave2[wave])))) + ((Math.sin(phaseshiftsubwave3[wave]+(xi*frequencysubwave3[wave])) * Math.sin(phaseshiftsubwave4[wave]+(yi*frequencysubwave4[wave])))); var amountsubneg = 1.0 - amountsub;
redframe[f][xi][yi] += intensity * ((amount * amountsubneg * redwave[wave]) + (amount * amountsub * redsubwave[wave])); greenframe[f][xi][yi] += intensity * ((amount * amountsubneg * greenwave[wave]) + (amount * amountsub * greensubwave[wave])); blueframe[f][xi][yi] += intensity * ((amount * amountsubneg * bluewave[wave]) + (amount * amountsub * bluesubwave[wave]));
}
redframe[f][xi][yi] += Math.random() * 20 | 0; greenframe[f][xi][yi] += Math.random() * 20 | 0; blueframe[f][xi][yi] += Math.random() * 20 | 0;
} } } }
function play() { playmovie = 1; } function loop() { if(counter == 0) {
var frequency1 = (Math.random() * 10) / 3400; // 2560 var frequency2 = (Math.random() * 10) / 3400; var frequency3 = (Math.random() * 10) / 1700; // 1280 var frequency4 = (Math.random() * 10) / 1700;
var phaseshift1 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift2 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift3 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift4 = ((Math.random() * 10) / 10) * Math.PI;
var frequency5 = (Math.random() * 10) / 2560; var frequency6 = (Math.random() * 10) / 2560; var frequency7 = (Math.random() * 10) / 1280; var frequency8 = (Math.random() * 10) / 1280;
var phaseshift5 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift6 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift7 = ((Math.random() * 10) / 10) * Math.PI; var phaseshift8 = ((Math.random() * 10) / 10) * Math.PI; r = Math.random() * 256 | 0; g = Math.random() * 256 | 0; b = Math.random() * 256 | 0;
var startfreq = 2500;//2560;//1280;//2560;//5120;//2560 var startsubfreq = startfreq;//1700;//640;//2560;//1280;//2560;//320;//640;
var amountsub = new Array(amountofsubwaves);
var amountsubTEMP = new Array(amountofsubwaves);
for (wavesInit = 1; wavesInit < 100; wavesInit++) { frequencywave1A[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); frequencywave1B[wavesInit] = (Math.random() * 10) / (startfreq / (wavesInit*2.0)); frequencywave1C[wavesInit] = (Math.random() * 10) / ((startfreq / 2) / (wavesInit*2.0)); frequencywave1D[wavesInit] = (Math.random() * 10) / ((startfreq / 2) / (wavesInit*2.0)); frequencywave1E[wavesInit] = (Math.random() * 10) / ((startfreq / 2) / (wavesInit*2.0)); frequencywave1F[wavesInit] = (Math.random() * 10) / ((startfreq / 2) / (wavesInit*2.0));
phaseshiftwave1A[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1B[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1C[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1D[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1E[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftwave1F[wavesInit] = ((Math.random() * 10) / 10) * Math.PI; var subwaverandfreq = 1;//Math.random() * 30; // 30
for (subwaves = 0; subwaves < amountofsubwaves; subwaves++) { frequencysubwaveA[wavesInit][subwaves] = (Math.random() * 10) / (startsubfreq / (wavesInit*4.5) / (subwaverandfreq)); frequencysubwaveB[wavesInit][subwaves] = (Math.random() * 10) / (startsubfreq / (wavesInit*4.5) / (subwaverandfreq)); frequencysubwaveC[wavesInit][subwaves] = (Math.random() * 10) / ((startsubfreq/2) / (wavesInit*4.5) / (subwaverandfreq)); frequencysubwaveD[wavesInit][subwaves] = (Math.random() * 10) / ((startsubfreq/2) / (wavesInit*4.5) / (subwaverandfreq)); frequencysubwaveE[wavesInit][subwaves] = (Math.random() * 10) / ((startsubfreq/2) / (wavesInit*4.5) / (subwaverandfreq)); frequencysubwaveF[wavesInit][subwaves] = (Math.random() * 10) / ((startsubfreq/2) / (wavesInit*4.5) / (subwaverandfreq));
phaseshiftsubwaveA[wavesInit][subwaves] = ((Math.random() * 20) / 20) * Math.PI; phaseshiftsubwaveB[wavesInit][subwaves] = ((Math.random() * 20) / 20) * Math.PI; phaseshiftsubwaveC[wavesInit][subwaves] = ((Math.random() * 20) / 20) * Math.PI; phaseshiftsubwaveD[wavesInit][subwaves] = ((Math.random() * 20) / 20) * Math.PI; phaseshiftsubwaveE[wavesInit][subwaves] = ((Math.random() * 20) / 20) * Math.PI; phaseshiftsubwaveF[wavesInit][subwaves] = ((Math.random() * 20) / 20) * Math.PI;
frequencysubwaveATEMP[wavesInit][subwaves] = (Math.random() * 10) / (startsubfreq / (wavesInit*3.0) / (subwaverandfreq)); frequencysubwaveBTEMP[wavesInit][subwaves] = (Math.random() * 10) / (startsubfreq / (wavesInit*3.0) / (subwaverandfreq)); frequencysubwaveCTEMP[wavesInit][subwaves] = (Math.random() * 10) / ((startsubfreq/2) / (wavesInit*3.0) / (subwaverandfreq)); frequencysubwaveDTEMP[wavesInit][subwaves] = (Math.random() * 10) / ((startsubfreq/2) / (wavesInit*3.0) / (subwaverandfreq));
phaseshiftsubwaveATEMP[wavesInit][subwaves] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftsubwaveBTEMP[wavesInit][subwaves] = ((Math.random() * 10) / 10) * Math.PI; phaseshiftsubwaveCTEMP[wavesInit][subwaves]= ((Math.random() * 10) / 10) * Math.PI; phaseshiftsubwaveDTEMP[wavesInit][subwaves] = ((Math.random() * 10) / 10) * Math.PI; }
// colors redwave[wavesInit] = Math.random() * 256 | 0; greenwave[wavesInit] = Math.random() * 256 | 0; bluewave[wavesInit] = Math.random() * 256 | 0;
waveblendproperty[wavesInit] = Math.random() * 10 | 0; for (subwaves = 0; subwaves < amountofsubwaves; subwaves++) { redsubwave[wavesInit][subwaves] = Math.random() * 256 | 0; redsubwaveTEMP[wavesInit][subwaves] = Math.random() * 256 | 0; greensubwave[wavesInit][subwaves] = Math.random() * 256 | 0; bluesubwave[wavesInit][subwaves] = Math.random() * 256 | 0; } }
for (xi = 0; xi < width; xi++) { for(yi = 0; yi< height; yi++) {
red[xi][yi] = 0; green[xi][yi] = 0; blue[xi][yi] = 0; var amount = ((Math.sin(phaseshift1+(xi*frequency1)) * Math.sin(phaseshift2+(yi*frequency2)))) + ((Math.sin(phaseshift3+(xi*frequency3)) * Math.sin(phaseshift4+(yi*frequency4)))) - ((Math.sin(phaseshift5+(xi*frequency5)) * Math.sin(phaseshift6+(yi*frequency6)))); red[xi][yi] += intensity * amount * ((r + g + b) / 3); green[xi][yi] += intensity * amount * ((r + g + b) / 3); blue[xi][yi] += intensity * amount * ((r + g + b) / 3);
var amountb = ((Math.sin(phaseshift5+(xi*frequency5)) * Math.sin(phaseshift6+(yi*frequency6)))) + ((Math.sin(phaseshift7+(xi*frequency7)) * Math.sin(phaseshift8+(yi*frequency8)))); brightness[xi][yi] = amountb; var isLight = 0;
for (wave = 1; wave < 25; wave++) // 20 { amount *= (Math.sin(phaseshiftwave1A[wave]+(xi*frequencywave1A[wave])) * Math.sin(phaseshiftwave1B[wave]+(yi*frequencywave1B[wave]))) + (Math.sin(phaseshiftwave1C[wave]+(xi*frequencywave1C[wave])) * Math.sin(phaseshiftwave1D[wave]+(yi*frequencywave1D[wave]))) - (Math.sin(phaseshiftwave1E[wave]+(xi*frequencywave1E[wave])) * Math.sin(phaseshiftwave1F[wave]+(yi*frequencywave1F[wave]))); // *=
var total = 0; var totalTEMP = 0; for (as = 0; as < amountofsubwaves; as++) { amountsub[as] = 2.0 + (Math.sin(phaseshiftsubwaveA[wave][as]+(xi*frequencysubwaveA[wave][as])) * Math.sin(phaseshiftsubwaveB[wave][as]+(yi*frequencysubwaveB[wave][as]))) + (Math.sin(phaseshiftsubwaveC[wave][as]+(xi*frequencysubwaveC[wave][as])) * Math.sin(phaseshiftsubwaveD[wave][as]+(yi*frequencysubwaveD[wave][as]))) - (Math.sin(phaseshiftsubwaveE[wave][as]+(xi*frequencysubwaveE[wave][as])) * Math.sin(phaseshiftsubwaveF[wave][as]+(yi*frequencysubwaveF[wave][as])));
//amountsub[as] = 2.0 + (Math.sin(phaseshiftsubwaveA[wave][as]+(xi*frequencysubwaveA[wave][as])) * Math.sin(phaseshiftsubwaveB[wave][as]+(yi*frequencysubwaveB[wave][as]))) + //(Math.sin(phaseshiftsubwaveC[wave][as]+(xi*frequencysubwaveC[wave][as])) * Math.sin(phaseshiftsubwaveD[wave][as]+(yi*frequencysubwaveD[wave][as]))); total += amountsub[as]; //amountsubTEMP[as] = 2.0 + (Math.sin(phaseshiftsubwaveATEMP[wave][as]+(xi*frequencysubwaveATEMP[wave][as])) * Math.sin(phaseshiftsubwaveBTEMP[wave][as]+(yi*frequencysubwaveBTEMP[wave][as]))) + //(Math.sin(phaseshiftsubwaveCTEMP[wave][as]+(xi*frequencysubwaveCTEMP[wave][as])) * Math.sin(phaseshiftsubwaveDTEMP[wave][as]+(yi*frequencysubwaveDTEMP[wave][as]))); //totalTEMP += amountsubTEMP[as]; } var totalnewred = 0; var totalnewgreen = 0; var totalnewblue = 0;
for (asc = 0; asc < amountofsubwaves; asc++) { var tempcolortest = (Math.sin(phaseshiftsubwaveATEMP[wave][asc]+(xi*frequencysubwaveATEMP[wave][asc])) * Math.sin(phaseshiftsubwaveBTEMP[wave][asc]+(yi*frequencysubwaveBTEMP[wave][asc])));
var subpercentage = amountsub[asc] / total;
totalnewred += (amount * subpercentage * redsubwave[wave][asc]);
totalnewgreen += (amount * subpercentage * greensubwave[wave][asc]); totalnewblue += (amount * subpercentage * bluesubwave[wave][asc]);
}
if(isLight > 1) { isLight = 0; } isLight++;
if(isLight == 1) { var avgcolors = (totalnewred + totalnewgreen + totalnewblue) / 3; totalnewred = avgcolors; totalnewgreen = avgcolors; totalnewblue = avgcolors; } red[xi][yi] += intensity * totalnewred ; green[xi][yi] += intensity * totalnewgreen; blue[xi][yi] += intensity * totalnewblue;
//red[xi][yi] += intensity * ((totalnewred + totalnewgreen + totalnewblue) / 3); //green[xi][yi] += intensity * ((totalnewred + totalnewgreen + totalnewblue) / 3); //blue[xi][yi] += intensity * ((totalnewred + totalnewgreen + totalnewblue) / 3); if (waveblendproperty[wave]> 4) { //red[xi][yi] +=5; //green[xi][yi] += 5; //blue[xi][yi] += 5; }
}
//red[xi][yi] += Math.random() * 20 | 0; //green[xi][yi] += Math.random() * 20 | 0; //blue[xi][yi] += Math.random() * 20 | 0;
//var totalcolors = (red[xi][yi] + green[xi][yi] + blue[xi][yi]) / 3; //red[xi][yi] += totalcolors; //green[xi][yi] += totalcolors; //blue[xi][yi]+= totalcolors;
} }
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, y, x, red[x][y],green[x][y],blue[x][y], 255); // 255 opaque //x y switch } } } else {
if(playmovie == 1) {
// update for (x = 0; x < width; x++) { for(y= 0; y< height; y++) {
setPixel(imageData, x, y, redframe[movietimecounter][x][y],greenframe[movietimecounter][x][y],blueframe[movietimecounter][x][y], 255); // 255 opaque } }
movietimecounter++; if(movietimecounter == frameamount) { movietimecounter = 0; }
} }
c.putImageData(imageData, 0, 0);
counter++;
setTimeout("loop()",0); // 100 }
loop();
</script> <br> <button onclick="reset()">New</button> <button onclick="history()">History</button> <button onclick="record()">Record</button> <button onclick="play()">Play</button>
<br> <br>
</html>
 |
firefly3 | zondag 8 december 2013 @ 14:31 |






[ Bericht 4% gewijzigd door firefly3 op 08-12-2013 14:38:16 ] |
firefly3 | woensdag 15 januari 2014 @ 21:48 |
Vernieuwde versie met verschillende start frequenties
 |
firefly3 | donderdag 16 januari 2014 @ 22:10 |


 |
LXIV | donderdag 16 januari 2014 @ 22:12 |
Je kunt die plaatjes zo op A3-canvas uitprinten en in een museum hangen! |
firefly3 | donderdag 16 januari 2014 @ 22:12 |
quote: Thanks!! |
JddMan | vrijdag 17 januari 2014 @ 00:44 |
Ik heb wel eens plaatjes gemaakt door een hele hoop random getallen te genereren en die om te zetten in pixels. Ik kreeg toen een soort kleurrijk sneeuwbeeld wat nergens op leek.
Bovenstaande plaatjes vind ik wel geinig. Er zitten een aantal interessante beelden tussen.
Edit: Ik kreeg deze. Ik zie een kikker.

[ Bericht 20% gewijzigd door JddMan op 17-01-2014 00:51:06 ] |
firefly3 | vrijdag 17 januari 2014 @ 08:35 |
quote: Op vrijdag 17 januari 2014 00:44 schreef JddMan het volgende:Ik heb wel eens plaatjes gemaakt door een hele hoop random getallen te genereren en die om te zetten in pixels. Ik kreeg toen een soort kleurrijk sneeuwbeeld wat nergens op leek. Bovenstaande plaatjes vind ik wel geinig. Er zitten een aantal interessante beelden tussen. Edit: Ik kreeg deze. Ik zie een kikker. [ afbeelding ] Gaaf! De beelden waren waarschijnlijk ongeveer zoals aan het begin van het topic? |
JddMan | vrijdag 17 januari 2014 @ 14:23 |
*even terugbladeren*
...
Ja inderdaad, exact zo. |
Bosbeetle | vrijdag 17 januari 2014 @ 14:26 |
quote: Dat ligt aan de manier dat random generators werken, die maken geen daadwerkelijke random nummers maar veel vaker een normaal of uniform verdeling. Een échte random generator zou ook af en toe (zeer zeldzaam) een reeks met alleen maar het getal 28 moeten uitspugen bijvoorbeeld maar dan geloof geen mens meer dat het random is. |
ludicrous_monk | zaterdag 18 januari 2014 @ 13:45 |
quote: Op vrijdag 17 januari 2014 14:26 schreef Bosbeetle het volgende:[..] Dat ligt aan de manier dat random generators werken, die maken geen daadwerkelijke random nummers maar veel vaker een normaal of uniform verdeling. Een échte random generator zou ook af en toe (zeer zeldzaam) een reeks met alleen maar het getal 28 moeten uitspugen bijvoorbeeld maar dan geloof geen mens meer dat het random is. Cryptografisch veilige pseudorandom number generators doen dat wel degelijk wel eens. Ook dat zijn geen "echte" random generators, omdat ze nog steeds op basis van een state het nieuwe getal produceren, maar ze passeren allemaal de 'next-bit test', dus ze zijn uiterlijk niet te onderscheiden van echte random generators.
De reden dat de plaatjes in dit topic niet zo veranderd zijn is voornamelijk dat het algoritme gewoon niet heel erg gewijzigd is. |
firefly3 | zondag 23 februari 2014 @ 20:47 |
 |
Duvel | zondag 23 februari 2014 @ 20:57 |
quote: Cool.
 |
firefly3 | zondag 23 februari 2014 @ 20:59 |
quote:  |
DemonRage | zondag 23 februari 2014 @ 21:41 |
Topic wordt interessant en er wordt code gebruikt die raakvlakken heeft met het genereren van een sinusplasma (ooit veel gebruikt in de demoscene). Sinusplasma's gebruiken juist hele lage frequenties.
Ik denk om details te krijgen dat dit gecombineerd moet worden met fractal-achtige berekeningen, waardoor een soort van self-similarity ontstaat...
Je kunt proberen om een golf te maken met meerdere niveau's van detail: • Maak een bepaalde golf • Tel bij die golf dezelfde golf op, maar met de frequentie verdubbeld, de amplitude gehalveerd en eventueel een verschoven fase. • Om enkele niveau's dieper te gaan: voordat je de nieuwe golf optelt bij de eerste, doe hetzelfde met de 2e golf. En dit kun je natuurlijk herhalen voor elk niveau van detail.
Dus eigenlijk maak je gewoon een wiskundige functie: f(x) = ...iets met golven... en wat eruit komt is: y = f(x) + f(2·x + p1)/2 + f(4·x + p2)/4 + f(8·x + p3)/8 + ...
Dit bekende plaatje (Koch snowflake) maakt misschien duidelijker wat er dan gebeurt:

Zo ontstaan er meer details, misschien leuk om eens toe te passen op de golven. 
Misschien dat ik van de week ook eens een algoritme ga fabriceren.
[ Bericht 2% gewijzigd door DemonRage op 23-02-2014 22:44:30 ] |
ludicrous_monk | zondag 23 februari 2014 @ 23:35 |
quote: Op zondag 23 februari 2014 21:41 schreef DemonRage het volgende:Topic wordt interessant en er wordt code gebruikt die raakvlakken heeft met het genereren van een sinusplasma (ooit veel gebruikt in de demoscene). Sinusplasma's gebruiken juist hele lage frequenties. Ik denk om details te krijgen dat dit gecombineerd moet worden met fractal-achtige berekeningen, waardoor een soort van self-similarity ontstaat... Je kunt proberen om een golf te maken met meerdere niveau's van detail: • Maak een bepaalde golf • Tel bij die golf dezelfde golf op, maar met de frequentie verdubbeld, de amplitude gehalveerd en eventueel een verschoven fase. • Om enkele niveau's dieper te gaan: voordat je de nieuwe golf optelt bij de eerste, doe hetzelfde met de 2e golf. En dit kun je natuurlijk herhalen voor elk niveau van detail. Dus eigenlijk maak je gewoon een wiskundige functie: f(x) = ...iets met golven... en wat eruit komt is: y = f(x) + f(2·x + p1)/2 + f(4·x + p2)/4 + f(8·x + p3)/8 + ...Dit bekende plaatje (Koch snowflake) maakt misschien duidelijker wat er dan gebeurt: [ afbeelding ] Zo ontstaan er meer details, misschien leuk om eens toe te passen op de golven.  Misschien dat ik van de week ook eens een algoritme ga fabriceren. Lang niet alle foto's bevatten self-similarity. De meeste niet zelfs. |
firefly3 | maandag 24 februari 2014 @ 07:58 |
Hogere frequenties gebruik ik al voor detail. Ik zou het misschien nog kunnen verbeteren. |
firefly3 | dinsdag 25 februari 2014 @ 11:52 |
Ik heb een fout ontdekt. Het detail wordt nu beter verspreid. Waarschijnlijk ga ik de code flink aanpassen, de weg is nu open naar nog veel meer. Het gaat spannend worden. De plaatjes die ik tot nu toe heb gepost zullen in het niets verbleken. |
firefly3 | donderdag 27 februari 2014 @ 21:18 |



[ Bericht 3% gewijzigd door firefly3 op 27-02-2014 21:32:44 ] |
firefly3 | dinsdag 4 maart 2014 @ 19:06 |














 |
esv7 | dinsdag 4 maart 2014 @ 19:15 |
quote: Begin er nu echt dingen in te zien, die ene lijkt heel erg op een oog. |
Pietverdriet | dinsdag 4 maart 2014 @ 19:23 |
Hoe lang duurt het genereren van een laten we zeggen, 5000 bij 5000 pixels plaatje? Zou dan namelijk een aantal renderen en uit laten printen op hoogglans laminaat en een tentoonstelling organiseren in een gallerie, Random Art. Zomaar een tip, wellicht breek je door in de kunstscene |
firefly3 | dinsdag 4 maart 2014 @ 19:43 |
quote: Op dinsdag 4 maart 2014 19:23 schreef Pietverdriet het volgende:Hoe lang duurt het genereren van een laten we zeggen, 5000 bij 5000 pixels plaatje? Zou dan namelijk een aantal renderen en uit laten printen op hoogglans laminaat en een tentoonstelling organiseren in een gallerie, Random Art. Zomaar een tip, wellicht breek je door in de kunstscene Daar zat ik ook aan te denken, het duurt ongeveer een paar minuten op een redelijke pc. In principe kan ik elke dag een heel hal vullen met nieuwe afbeeldingen. Later dan overgaan naar videobeelden tot zelfs interactieve random 3d werelden  |
esv7 | dinsdag 4 maart 2014 @ 19:51 |
quote: Op dinsdag 4 maart 2014 19:43 schreef firefly3 het volgende:[..] Daar zat ik ook aan te denken, het duurt ongeveer een paar minuten op een redelijke pc. In principe kan ik elke dag een heel hal vullen met nieuwe afbeeldingen. Later dan overgaan naar videobeelden tot zelfs interactieve random 3d werelden  Wow dat klinkt echt heel gaaf ja . Soort van LSD trip simulator . |
firefly3 | dinsdag 4 maart 2014 @ 19:55 |
quote: Haha  |
Pietverdriet | dinsdag 4 maart 2014 @ 19:59 |
quote: Op dinsdag 4 maart 2014 19:43 schreef firefly3 het volgende:[..] Daar zat ik ook aan te denken, het duurt ongeveer een paar minuten op een redelijke pc. In principe kan ik elke dag een heel hal vullen met nieuwe afbeeldingen. Later dan overgaan naar videobeelden tot zelfs interactieve random 3d werelden  Heb een jaar of 30 terug eens een videocamera aangesloten op de TV en toen het beeldscherm weergegeven op de tv wat de camera weer filmde en op de tv weergaf, rondzingen zogezegd. Erg wierde beelden gaf dat. Met een digitale camera en een digitale tv heb ik dat nog niet geprobeerd |
Luigi | dinsdag 4 maart 2014 @ 20:00 |
quote: Op dinsdag 4 maart 2014 19:43 schreef firefly3 het volgende:[..] Daar zat ik ook aan te denken, het duurt ongeveer een paar minuten op een redelijke pc. In principe kan ik elke dag een heel hal vullen met nieuwe afbeeldingen. Later dan overgaan naar videobeelden tot zelfs interactieve random 3d werelden  Ik vind het super mooi iig!  |
Karboenkeltje | dinsdag 4 maart 2014 @ 20:07 |
quote: Op donderdag 28 november 2013 08:07 schreef firefly3 het volgende:De Mantisgarnaal kan zestien basiskleuren zien. Wij maar drie. Voor hun ziet de wereld er nog mooier uit dan wij kunnen inbeelden. Zelfs met 1 basis kleur erbij kunnen we weer veel nieuwe kleuren mengen  Die snap ik niet helemaal. Waarom zou je meer kunnen zien met meer basiskleuren? Het zichtbare lichtspectrum gaat van een lage golflengte naar een hoge, wat zou het in praktische zin uitmaken of je op drie of tien punten meet en dan interpoleert? |
firefly3 | dinsdag 4 maart 2014 @ 20:14 |
quote: Op dinsdag 4 maart 2014 19:59 schreef Pietverdriet het volgende:[..] Heb een jaar of 30 terug eens een videocamera aangesloten op de TV en toen het beeldscherm weergegeven op de tv wat de camera weer filmde en op de tv weergaf, rondzingen zogezegd. Erg wierde beelden gaf dat. Met een digitale camera en een digitale tv heb ik dat nog niet geprobeerd Leuk experiment!
quote: Thx!!
quote: Op dinsdag 4 maart 2014 20:07 schreef Karboenkeltje het volgende:[..] Die snap ik niet helemaal. Waarom zou je meer kunnen zien met meer basiskleuren? Het zichtbare lichtspectrum gaat van een lage golflengte naar een hoge, wat zou het in praktische zin uitmaken of je op drie of tien punten meet en dan interpoleert? De golven zijn in meerdere stukken verdeeld. Wat wij bijvoorbeeld als puur groen zien, zien zij in meerdere kleuren:
 |
Pietverdriet | dinsdag 4 maart 2014 @ 20:18 |
quote: Wist je dat niet alle mensen kleuren hetzelfde zien? (en nee, ik heb het niet over kleurenblindheid) Was een tijdje terug een docu over op de BBC, horizon serie, hun wetenschaps docu's Heel interessant, kan hem niet zo snel vinden online |
Karboenkeltje | dinsdag 4 maart 2014 @ 20:21 |
quote: Ja, maar... Dat plaatje is heel handig voor mijn voorbeeld: Kleuren en de communicatie daarin zijn gebaseerd op afspraken. Zou het in het plaatje niet kunnen zijn dat een mens zegt: "Die appel is groen." Maar een hond: ¨Die appel is rechts-wit." Dan hebben ze toch alletwee evenveel gelijk en is er qua observatie van het spectrum geen verschil? |
Gloorbek | dinsdag 4 maart 2014 @ 20:30 |
quote: Op maandag 10 juni 2013 19:26 schreef firefly3 het volgende:Als je telkens een plaatje liet genereren door gewoon elke pixel een random kleur te geven, zou er toch ooit een foto uit moeten komen? Alle mogelijkheden bestaan, dus in principe zou je ook ooit een keer een "foto" van je tegenkomen waarbij je met een groene t-shirt op een walvis staat, samen met tweelingzussen en twee zonnen aan de hemel? De mogelijkheden lijken wel eindeloos, maar de kans is denk ik klein dat er een "foto" uit komt. Als op een gegeven moment pc's snel genoeg zijn, kunnen we dan realistische beelden uit de massa plaatjes filteren? Bijvoorbeeld in combinatie met gezichts-herkennings algoritmes, waarbij elk random plaatje waar "iemand" op staat eruit wordt gefilterd? Ik ben zeer benieuwd wat ons te wachten staat!! Je avatar is al flink bezig zo te zien, |
Faux. | dinsdag 4 maart 2014 @ 20:33 |
quote: ze zijn mooi!  ga zo door! |
firefly3 | woensdag 5 maart 2014 @ 07:55 |
quote: Op dinsdag 4 maart 2014 20:18 schreef Pietverdriet het volgende:[..] Wist je dat niet alle mensen kleuren hetzelfde zien? (en nee, ik heb het niet over kleurenblindheid) Was een tijdje terug een docu over op de BBC, horizon serie, hun wetenschaps docu's Heel interessant, kan hem niet zo snel vinden online Dat wist ik niet! |
firefly3 | woensdag 5 maart 2014 @ 08:01 |
quote: Op dinsdag 4 maart 2014 20:21 schreef Karboenkeltje het volgende:[..] Ja, maar... Dat plaatje is heel handig voor mijn voorbeeld: Kleuren en de communicatie daarin zijn gebaseerd op afspraken. Zou het in het plaatje niet kunnen zijn dat een mens zegt: "Die appel is groen." Maar een hond: ¨Die appel is rechts-wit." Dan hebben ze toch alletwee evenveel gelijk en is er qua observatie van het spectrum geen verschil? Nee, die hond ziet daadwerkelijk de kleur rood niet en ziet een egaal vlak. Voor hem zijn meerdere kleuren wit geworden. Hierdoor mist hij ook de kleur variatie van dat deel van het spectrum en vullen de hersenen het in met het eerstvolgende. |