STUDY OF VISUAL ARTS. What is art? What are the functions / purposes of art?
Arfunkel - Functions for Art
-
Upload
eelco-den-heijer -
Category
Software
-
view
226 -
download
0
Transcript of Arfunkel - Functions for Art
![Page 1: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/1.jpg)
Arfunkel: Functions for Art
Creative Coding Amsterdam18 February 2016
Eelco den Heijer
![Page 2: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/2.jpg)
Introduction
•Arfunkel : Art Functions
•Functions on Images
•Generative Art
•Building Blocks
•Not a Tool: Framework
![Page 3: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/3.jpg)
Me
•Programmer (mainly Java), Creative Coder
•Many projects on Creative Coding
• PhD on Evolutionary Art (2013,CS,VU)
• Studio Heist
•Also like Music Technology (electronic music, generative music, coding…)
![Page 4: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/4.jpg)
Functions on Images
create
filter
![Page 5: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/5.jpg)
blend
split
terminate
![Page 6: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/6.jpg)
Functions on Functions
•or: Higher Order Functions
• Repeat/ loop (e.g. kaleidoscope)
• If/then/else
• Etc.
![Page 7: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/7.jpg)
blending pixels• each pixel consists of 3 components: R,G,B• RGB is a colour space or colour model• Colour space = way to organize or order colors• Well-known colour spaces: RGB, HSV/HSB, HSL,
CMYK, YIC, CIEXYZ, CIELUV,CIELAB etc.
![Page 8: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/8.jpg)
![Page 9: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/9.jpg)
Blending: how?• Blend 2 images:
• Iterate over all pixels (x,y):
• Pixel p1 from image 1, Pixel p2 from image 2:
• Take RGB from both pixels
• Convert to HSV (or any other colour space)
• apply function fi to each channel i (e.g. average, min, max, left, right, etc) : vi=fi(ci1,ci2); see next slide for more details
• Convert back to RGB
![Page 10: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/10.jpg)
Example• Colour space = HSV
• Components c1,c2,c3=Hue, Saturation, Value
• functions: f1,f2,f3=min, max, avg
• New pixel:
• huenew=min(hue1,hue2)
• satnew=max(sat1,sat2)
• valnew=avg(val1,val2)
• Convert from hsv back to RGB
![Page 11: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/11.jpg)
![Page 12: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/12.jpg)
Recolouring• Changing the colours in an image
• Used for image repair, fixing lighting issues, or artistic purposes
• Several algorithms possible, often with source image and target image
• Channel shift algorithm
• Convert RGB to HSV (or any other colour space)
• Take value of each channel, shift predefined value
• Ensure you do not cross boundary values
![Page 13: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/13.jpg)
RGB
HSV
CIELAB
![Page 14: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/14.jpg)
Mirroring • Simple horizontal, vertical mirror
• Sort of Kaleidoscope effect
![Page 15: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/15.jpg)
Misc
•Several standard, ‘bread and butter’ filters;
• Solarize
• Blur
• Posterize
• Image Segmentation
![Page 16: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/16.jpg)
![Page 17: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/17.jpg)
![Page 18: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/18.jpg)
Workflow ex. 1
Get Image
Get Image
Blend Recolour Solarize
![Page 19: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/19.jpg)
Workflow ex. 2
Get Image
Get Image
Blend
Recolour
MirrorLeft/Right
Recolour
![Page 20: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/20.jpg)
![Page 21: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/21.jpg)
![Page 22: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/22.jpg)
![Page 23: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/23.jpg)
![Page 24: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/24.jpg)
![Page 25: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/25.jpg)
![Page 26: Arfunkel - Functions for Art](https://reader031.fdocuments.in/reader031/viewer/2022030123/58a3e4e61a28ab272e8b4641/html5/thumbnails/26.jpg)
Conclusions & Future work• First Scala, now Java 8
• Heavy use of ‘lambdas’
• Pretty flexible, still prototype
• More weird recolouring (colour transfer)
• Higher order functions
• Colouring (grayscale to colour)
• Grammar; Little Language (my own Processing)
• REPL: Read-Eval-Print Loop