{"id":217,"date":"2007-03-04T03:43:18","date_gmt":"2007-03-04T02:43:18","guid":{"rendered":"http:\/\/www.multimedialab.be\/blog\/?p=217"},"modified":"2007-09-27T10:49:10","modified_gmt":"2007-09-27T09:49:10","slug":"pixelliser-une-capture-video","status":"publish","type":"post","link":"http:\/\/www.multimedialab.be\/blog\/?p=217","title":{"rendered":"Pixelliser une capture video"},"content":{"rendered":"<p>Suite \u00c3\u00a0 notre visite \u00c3\u00a0 Artefact (STUK-Leuven), un petit programme PROCESSING inspir\u00c3\u00a9 par les beaux \u00c3\u00a9crans de Jim Campbell&#8230;<\/p>\n<p><img decoding=\"async\" id=\"image218\" src=\"http:\/\/www.multimedialab.be\/blog\/wp-content\/uploads\/2007\/03\/jim_campbell02.jpg\" alt=\"jim_campbell02.jpg\" \/><\/p>\n<p><!--more--><\/p>\n<p>Histoire d&rsquo;en comprendre un peu plus, ce fichier est une adaptation de <a href=\"http:\/\/processing.org\/learning\/examples\/mirror2.html\">\u00ab\u00a0Mirror 2\u00a0\u00bb de Daniel Shiffman.<\/a> <\/p>\n<p>Il n\u00c3\u00a9cessite une webcam raccord\u00c3\u00a9e \u00c3\u00a0 votre ordi. Copiez le code ci-dessous, collez-le dans PROCESSING et ex\u00c3\u00a9cutez le programme (\u00ab\u00a0Run\u00a0\u00bb) pour voir le r\u00c3\u00a9sultat, proche des grilles de pixels de Jim Campell (la finition et le rendu en moins ).<\/p>\n<p>Voir d&rsquo;autres exercices \u00ab\u00a0Processing\u00a0\u00bb disponibles sur multimedialab :<br \/>\n<a href=\"http:\/\/www.multimedialab.be\/cours\/processing\/index.htm\">http:\/\/www.multimedialab.be\/cours\/processing\/index.htm<\/a><\/p>\n<p>Code :<\/p>\n<pre><code>\r\nimport processing.video.*;\r\n\r\n\/\/ Definir une variable pour la taille \r\n\/\/ de chaque cellule dans la grille\r\n\r\nint TailleCellule = 7;\r\n\/\/ Definir une variable pour le nombre \r\n\/\/ de colonnes et de lignes\r\nint cols, rows;\r\n\/\/ Definir une variable pour la capture video\r\nCapture video;\r\n\r\n\r\nvoid setup()\r\n{\r\n  \/\/ Definir la taille de la fenetre\r\n  size(200, 200);\r\n \r\n  \/\/ Definir le nombre d'images\/sec\r\n  frameRate(30);\r\n \r\n  \/\/ Definir le nombre de colonnes \r\n  \/\/ en divisant la largeur \r\n  \/\/ par la variable TailleCellule\r\n  cols = width\/TailleCellule;\r\n \r\n  \/\/ Definir le nombre de lignes \r\n  \/\/ en divisant la hauteur \r\n  \/\/ par la variable TailleCellule\r\n  rows = height\/TailleCellule;\r\n \r\n  colorMode(RGB,255,255,255,100);\r\n  smooth();\r\n\r\n  \/\/ Utiliser le p\u00c3\u00a9riph\u00c3\u00a9rique de capture par d\u00c3\u00a9faut\r\n  video = new Capture(this, 200, 200, 15);\r\n}\r\n\r\nvoid captureEvent(Capture camera)\r\n{\r\n  camera.read();\r\n}\r\n\r\nvoid draw()\r\n{\r\n  \/\/ definir un fond noir\r\n  background(0);\r\n\r\n  \/\/ boucle de construction des colonnes\r\n  for ( int i = 0; i < cols; i++) {\r\n    \/\/ boucle de construction des lignes\r\n    for ( int j = 0; j < rows; j++) {\r\n\r\n      \/\/ definir des variables \r\n      \/\/ pour grossir les pixels\r\n      int x = i*TailleCellule;\r\n      int y = j*TailleCellule;\r\n\r\n      \/\/ retourner l'axe des x \r\n      \/\/ pour obtenir un effet miroir\r\n      int loc = (video.width - x - 1) + y*video.width;\r\n\r\n      \/\/ chaque gros pixel est colore en blanc, \r\n      \/\/ sa taille etant determinee par la clarte\r\n      color c = video.pixels[loc];\r\n      float sz = (brightness(c)\/255.0f)*TailleCellule;\r\n\r\n      \/\/ construire les pixels ronds \r\n      \/\/ reagissant a la clarte\r\n      ellipseMode(CENTER);\r\n      fill(255);\r\n      noStroke();\r\n      ellipse(x+TailleCellule\/2,y+TailleCellule\/2,sz,sz);\r\n    }\r\n  }\r\n}\r\n\r\n<\/code><\/pre>\n<p>Lien :<\/p>\n<li><a href=\"http:\/\/www.multimedialab.be\/cours\/processing\/index.htm\">Exercices \"Processing\" sur multimedialab.<\/a><\/li>\n<li><a href=\"http:\/\/www.multimedialab.be\/cours\/logiciels\/processing.htm\">La page \"Processing\" sur multimedialab.<\/a><\/li>\n","protected":false},"excerpt":{"rendered":"<p>Suite \u00c3\u00a0 notre visite \u00c3\u00a0 Artefact (STUK-Leuven), un petit programme PROCESSING inspir\u00c3\u00a9 par les beaux \u00c3\u00a9crans de Jim Campbell&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,14],"tags":[],"class_list":["post-217","post","type-post","status-publish","format-standard","hentry","category-code","category-processing"],"_links":{"self":[{"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=\/wp\/v2\/posts\/217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=217"}],"version-history":[{"count":0,"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=\/wp\/v2\/posts\/217\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.multimedialab.be\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}