<br />
<b>Warning</b>:  Declaration of Jetpack_IXR_Client::query() should be compatible with IXR_Client::query(...$args) in <b>/home/clients/7267bc096562fcdb78c0ab60d3ac51fb/web/blog/wp-content/plugins/jetpack/class.jetpack-ixr-client.php</b> on line <b>91</b><br />
{"id":936,"date":"2016-12-02T10:34:45","date_gmt":"2016-12-02T10:34:45","guid":{"rendered":"http:\/\/barradeau.com\/blog\/?p=936"},"modified":"2016-12-02T20:20:13","modified_gmt":"2016-12-02T20:20:13","slug":"statuettes","status":"publish","type":"post","link":"http:\/\/barradeau.com\/blog\/?p=936","title":{"rendered":"statuettes"},"content":{"rendered":"<p>this post explains how I produced the following series of images:<\/p>\n<div id=\"attachment_940\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094258-2.jpg\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img aria-describedby=\"caption-attachment-940\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-940 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094258-2-768x1022.jpg\" alt=\"20161202_094258-2\" width=\"700\" height=\"932\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094258-2-768x1022.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094258-2-226x300.jpg 226w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094258-2-770x1024.jpg 770w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-940\" class=\"wp-caption-text\"><a href=\"https:\/\/archive.org\/details\/mma_limestone_figure_wearing_a_mask_242066\">Limestone figure wearing a mask<\/a><\/p><\/div>\n<div id=\"attachment_941\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094258-2.jpg\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img aria-describedby=\"caption-attachment-941\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-941 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094318-2-768x1024.jpg\" alt=\"20161202_094318-2\" width=\"700\" height=\"933\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094318-2-768x1024.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094318-2-225x300.jpg 225w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-941\" class=\"wp-caption-text\"><a href=\"https:\/\/archive.org\/details\/mma_limestone_figure_with_mask_242089\">Limestone figure with mask<\/a><\/p><\/div>\n<div id=\"attachment_938\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094221-2.jpg\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img aria-describedby=\"caption-attachment-938\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-938 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094221-2-768x1022.jpg\" alt=\"20161202_094221-2\" width=\"700\" height=\"932\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094221-2-768x1022.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094221-2-225x300.jpg 225w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094221-2-769x1024.jpg 769w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-938\" class=\"wp-caption-text\"><a href=\"https:\/\/archive.org\/details\/mma_limestone_statuette_of_herakles_brandishing_a_club_242203\">limestone statuette of herakles brandishing a club<\/a><\/p><\/div>\n<div id=\"attachment_939\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094243-2.jpg\" data-rel=\"lightbox-image-3\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img aria-describedby=\"caption-attachment-939\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-939 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094243-2-768x1014.jpg\" alt=\"20161202_094243-2\" width=\"700\" height=\"924\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094243-2-768x1014.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094243-2-227x300.jpg 227w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094243-2-775x1024.jpg 775w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-939\" class=\"wp-caption-text\"><a href=\"https:\/\/archive.org\/details\/mma_limestone_statuette_of_eros_242221\">limestone statuette of eros<\/a><\/p><\/div>\n<p>all the images are based on photos from <a href=\"https:\/\/archive.org\/details\/image\">Archive.org.<br \/>\n<\/a>I\u00a0didn&#8217;t have anything special in mind, I just found these objects moving\u00a0; they were like action figures from long ago. the statues are quite small too, the printed version is roughly their actual size, small things are cute.<\/p>\n<p>I wanted to find a way to generate non photorealistic versions of these pictures,\u00a0<a href=\"https:\/\/twitter.com\/nicoptere\/status\/802965817826521088\">I started describing the process\u00a0here<\/a>\u00a0;\u00a0in a nutshell:<\/p>\n<blockquote><p><em>extract the saliency &gt; dithering (Floyd Steinberg) &gt; reaction diffusion &gt; component labelling &amp; vectorisation.<\/em><\/p><\/blockquote>\n<p>the images are\u00a0pre-processed through Ubernet, computed in javascript then\u00a0post-processed with Potrace and illustator.<\/p>\n<h2>Saliency Map<\/h2>\n<p>my plan was to use the <a href=\"http:\/\/www.scholarpedia.org\/article\/Visual_salience\">visual salience<\/a>\u00a0 of the images to drive the generation and distribution of points then try to find something different from the (overused) delaunay triangulation \/ voronoi diagram.\u00a0first I used MatLab to compute a <a href=\"http:\/\/www.scholarpedia.org\/article\/Saliency_map\">saliency map<\/a>\u00a0using <a href=\"http:\/\/www.chriskanan.com\/nimble\/\">this add-on<\/a>.<\/p>\n<div id=\"attachment_966\" style=\"width: 535px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-966\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-966 size-full\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/saliency_matlab.jpg\" alt=\"saliency_matlab\" width=\"525\" height=\"383\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/saliency_matlab.jpg 525w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/saliency_matlab-300x219.jpg 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><p id=\"caption-attachment-966\" class=\"wp-caption-text\">matlab saliency map<\/p><\/div>\n<p>it worked\u00a0; the yellow areas of the saliency map are the &#8220;most interesting parts&#8221; of the picture, distributing more points there is trivial but the map was a bit too far from the actuual morphology of the object ; here for instance it would give a great weight to the neck, the beak and the eye completely ignoring the cockscomb (funny word).<\/p>\n<p>then I vaguely remembered <a href=\"https:\/\/arxiv.org\/abs\/1609.02132\">Ubernet<\/a>\u00a0by <a href=\"http:\/\/cvn.ecp.fr\/personnel\/iasonas\/index.html\">Iasonas Kokkinos<\/a> (<a href=\"http:\/\/cvn.ecp.fr\/personnel\/iasonas\/pubs\/ubernets.pdf\">pdf<\/a>), that produces this kind of images:<\/p>\n<div style=\"width: 1246px\" class=\"wp-caption alignnone\"><a href=\" http:\/\/cvn.ecp.fr\/ubernet\/\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/cvn.ecp.fr\/ubernet\/im2.png\" width=\"1236\" height=\"631\" \/><\/a><p class=\"wp-caption-text\">Ubernet indicative result<\/p><\/div>\n<p>Ubernet\u00a0is a<\/p>\n<blockquote><p><em>`Universal&#8217; Convolutional Neural Network for Low-, Mid-, and High-Level Vision using Diverse Datasets and Limited Memory<\/em>.<\/p><\/blockquote>\n<p>which I read\u00a0bluntly as<\/p>\n<blockquote><p><em>a magic tool that does exactly what\u00a0you want.<\/em><\/p><\/blockquote>\n<p>now just look at the\u00a0saliency map! that&#8217;s exactly what I was after and the code was made available as an online API\u00a0<a href=\"http:\/\/cvn.ecp.fr\/ubernet\/\">http:\/\/cvn.ecp.fr\/ubernet\/<\/a>\u00a0:)<\/p>\n<p>here&#8217;s the same picture&#8217;s saliency map computed with Ubernet:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-965\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/saliency.jpg\" alt=\"saliency\" width=\"512\" height=\"783\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/saliency.jpg 512w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/saliency-196x300.jpg 196w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/p>\n<p>this was\u00a0better\u00a0suited to my needs, I used the online API to spit saliency maps\u00a0&amp; edges maps (and normal maps&#8230; just in case&#8230; and because normal maps are\u00a0awesome ^^).<\/p>\n<h2>Dithering<\/h2>\n<p>the second step was to perform a <a href=\"http:\/\/codepen.io\/nicoptere\/pen\/waPOOm\">dithering<\/a> to obtain an interesting points distribution\u00a0;\u00a0dithering results in a binary (black and white) image which is easier to vectorize.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-963\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/dither.jpg\" alt=\"dither\" width=\"512\" height=\"783\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/dither.jpg 512w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/dither-196x300.jpg 196w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/p>\n<p>that&#8217;s where I understood that the most interesting patterns to vectorize appeared in the &#8220;grey areas&#8221; rather than in the highly contrasted ones.<\/p>\n<h2>Reaction Diffusion<\/h2>\n<p>I later skipped the dithering in favor of a Reaction Diffusion pattern, the RD lets this kind of &#8220;grey areas&#8221; patterns emerge\u00a0and\u00a0&#8211; as the RD patterns emerge\u00a0&#8211; the dithering is completely obliterated. RD\u00a0produces the image below after a couple of iterations.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-964\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/readif.jpg\" alt=\"readif\" width=\"512\" height=\"783\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/readif.jpg 512w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/readif-196x300.jpg 196w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/p>\n<p>Reaction Diffusion can be achieved in many ways, the fastest \/ dirtiest I know of is to successively apply a sharpen filter (reaction) then a blur filter (diffusion), as simple as that. the good thing is that both are <a href=\"https:\/\/www.html5rocks.com\/en\/tutorials\/canvas\/imagefilters\/\">convolution fiilters<\/a>\u00a0(the examples don&#8217;t work but the snippets will).\u00a0First I implemented the filters manually but it was very slow and hard to fine tune so I used <a href=\"http:\/\/evanw.github.io\/glfx.js\/\">glfx.js<\/a>\u00a0to speed up the process and gain more control over the parameters.<\/p>\n<p>below is a series of settings that show how the result varies depending on\u00a0the radius of the sharpen\/blur filters ( r: 0.5, 1, 2, 3, 4, intensity: 1.5 ).<\/p>\n<p>the first row show the 3 input images: the source, the edges and the salience map computed by Ubernet,\u00a0the second row shows an <em>unconstrained<\/em> Reaction Diffusion pattern emerging and the third row shows the same pattern constrained by the saliency and edges map.<\/p>\n<p><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/table.jpg\" data-rel=\"lightbox-image-4\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-967\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/table.jpg\" alt=\"table\" width=\"2500\" height=\"2001\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/table.jpg 2500w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/table-300x240.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/table-768x615.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/table-1024x820.jpg 1024w\" sizes=\"(max-width: 2500px) 100vw, 2500px\" \/><\/a><\/p>\n<p>the &#8220;constrained&#8221; version preserves the morphology of the subject better.<br \/>\nto constrain, I only draw the saliency map and the edges after the RD pass. this way the pattern is kept away from\u00a0some\u00a0areas of\u00a0the picture.<\/p>\n<div id=\"attachment_969\" style=\"width: 1010px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/diff.jpg\" data-rel=\"lightbox-image-5\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img aria-describedby=\"caption-attachment-969\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-969 size-full\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/diff.jpg\" alt=\"diff\" width=\"1000\" height=\"667\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/diff.jpg 1000w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/diff-300x200.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/diff-768x512.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><p id=\"caption-attachment-969\" class=\"wp-caption-text\">left, unconstrained, right constrained Reaction Diffusion<\/p><\/div>\n<p>that&#8217;s why\u00a0the matlab version of the saliency map wasn&#8217;t the best choice ; too far from the subject&#8217;s morphology.<br \/>\nit&#8217;s also important to note that it would work with any gradient.<\/p>\n<p>here&#8217;s a live demo of the reaction diffusion + skeletonization.<\/p>\n<p>Disclaimer, GLFX may run into Context loss issues, which will break the demo, if you don&#8217;t see anything below the controls, it may just be broken.<\/p>\n<p><iframe loading=\"lazy\" width=\"100%\" height=\"950\" style=\"border: 1px solid #CCCCCC;\" src=\"http:\/\/www.barradeau.com\/2016\/statuettes\/index.html\"><br \/>\n<\/iframe><br \/>\nand the source code in the shape of a zip: <a href=\"http:\/\/www.barradeau.com\/2016\/statuettes\/statuettes.zip\">statuettes.zip<\/a><\/p>\n<p>the skeletize checkbox allows to perform a skeletonization post process ; should give something like this (if the skeleton is redrawn on top of the canvas):<\/p>\n<div id=\"attachment_954\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-954\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-954 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/horsemask1-768x1024.png\" alt=\"horsemask1\" width=\"700\" height=\"933\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/horsemask1-768x1024.png 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/horsemask1-225x300.png 225w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/horsemask1.png 1500w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><p id=\"caption-attachment-954\" class=\"wp-caption-text\">the black areas were skeletized<\/p><\/div>\n<div id=\"attachment_953\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-953\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-953 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/horsemask-768x1024.png\" alt=\"horsemask\" width=\"700\" height=\"933\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/horsemask-768x1024.png 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/horsemask-225x300.png 225w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/horsemask.png 1500w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><p id=\"caption-attachment-953\" class=\"wp-caption-text\">the white areas were skeletized<\/p><\/div>\n<h2>Vectorisation<\/h2>\n<p>the last step of the demo above is to threshold the image ; turn each pixel to black or white depending on whether their luminance is below or above a given threshold value.<\/p>\n<pre class=\"lang:js decode:true \">function threshold( ctx, threshold ) {\r\n\r\n    var imgData = ctx.getImageData( 0,0,w,h );\r\n    var col;\r\n    for( var i = 0; i&lt; imgData.data.length; i+=4  ){\r\n        var luma = imgData.data[ i ] * 0.299 + imgData.data[ i + 1 ] * 0.587 + imgData.data[ i + 2 ] * 0.114;\r\n        col = 255;\r\n        if( luma &lt; threshold )col = 0;\r\n        imgData.data[i] = imgData.data[i+1] =imgData.data[i+2] = col;\r\n    }\r\n    ctx.putImageData(imgData, 0, 0);\r\n}<\/pre>\n<p>so that we get a binary image that is\u00a0eligible for vectorisation.<\/p>\n<p>my first (naive) idea was to use component labelling and on-the-fly vectorisation as shown below (and that <a href=\"http:\/\/codepen.io\/nicoptere\/pen\/LpNyBW\">you can try here too<\/a>) but it wasn&#8217;t efficient and gave poor controls over the\u00a0process.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-962\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/component.png\" alt=\"component\" width=\"512\" height=\"783\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/component.png 512w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/component-196x300.png 196w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/p>\n<p>instead I used <a href=\"http:\/\/potrace.sourceforge.net\/\">Potrace<\/a>, a small Open Source utility that vectorizes binary images. it&#8217;s easy to use, robust, fast and there are\u00a0some <a href=\"http:\/\/potrace.sourceforge.net\/potrace.1.html\">handy flags<\/a>\u00a0the most important of which are:<\/p>\n<blockquote><p><b>-t <i>n<\/i>, &#8211;turdsize <i>n<\/i><\/b>suppress speckles of up to this many pixels.<\/p>\n<p><b>-a <i>n<\/i>, &#8211;alphamax <i>n<\/i><\/b>set the corner threshold parameter. The default value is 1. The smaller this value, the more sharp corners will be produced. If this parameter is 0, then no smoothing will be performed and the output is a polygon. If this parameter is greater than 4\/3, then all corners are suppressed and the output is completely smooth.<\/p><\/blockquote>\n<p>the vectorized result can be either filled or traced as a skeleton. depending on what you feed Potrace, you&#8217;ll get one of those.<\/p>\n<div id=\"attachment_979\" style=\"width: 897px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-979\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-979 size-full\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/filled.png\" alt=\"filled\" width=\"887\" height=\"935\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/filled.png 887w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/filled-285x300.png 285w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/filled-768x810.png 768w\" sizes=\"(max-width: 887px) 100vw, 887px\" \/><p id=\"caption-attachment-979\" class=\"wp-caption-text\">default vectorization<\/p><\/div>\n<div id=\"attachment_980\" style=\"width: 897px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/smooth.png\" data-rel=\"lightbox-image-6\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img aria-describedby=\"caption-attachment-980\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-980 size-full\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/smooth.png\" alt=\"smooth\" width=\"887\" height=\"935\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/smooth.png 887w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/smooth-285x300.png 285w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/smooth-768x810.png 768w\" sizes=\"(max-width: 887px) 100vw, 887px\" \/><\/a><p id=\"caption-attachment-980\" class=\"wp-caption-text\">skeleton with alphamax 1<\/p><\/div>\n<div id=\"attachment_981\" style=\"width: 897px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/straight.png\" data-rel=\"lightbox-image-7\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img aria-describedby=\"caption-attachment-981\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-981 size-full\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/straight.png\" alt=\"straight\" width=\"887\" height=\"935\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/straight.png 887w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/straight-285x300.png 285w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/straight-768x810.png 768w\" sizes=\"(max-width: 887px) 100vw, 887px\" \/><\/a><p id=\"caption-attachment-981\" class=\"wp-caption-text\">skeleton with alphamax 0<\/p><\/div>\n<p>the bothering part is that Potrace doesn&#8217;t handle PNG, so I had to convert PNGs to BMP but that&#8217;s quite ok :) the last thing was a clean up in illustrator to remove the\u00a0speckles or the frame around the\u00a0picture.<\/p>\n<p>and that\u00a0was it!<\/p>\n<p>I&#8217;ll just put some more pictures here for your enjoyment :)<\/p>\n<p><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_100032-e1480682532962.jpg\" data-rel=\"lightbox-image-8\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-950 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_100032-e1480682532962-768x432.jpg\" alt=\"20161202_100032\" width=\"700\" height=\"394\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_100032-e1480682532962-768x432.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_100032-e1480682532962-300x169.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_100032-e1480682532962-1024x576.jpg 1024w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095700-e1480682285881.jpg\" data-rel=\"lightbox-image-9\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-948 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095700-e1480682285881-768x432.jpg\" alt=\"20161202_095700\" width=\"700\" height=\"394\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095700-e1480682285881-768x432.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095700-e1480682285881-300x169.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095700-e1480682285881-1024x576.jpg 1024w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a> <a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095830-e1480682812899.jpg\" data-rel=\"lightbox-image-10\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-949 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095830-e1480682812899-768x432.jpg\" alt=\"20161202_095830\" width=\"700\" height=\"394\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095830-e1480682812899-768x432.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095830-e1480682812899-300x169.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095830-e1480682812899-1024x576.jpg 1024w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095438-e1480707036400.jpg\" data-rel=\"lightbox-image-11\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-946 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095438-e1480707036400-768x1365.jpg\" alt=\"20161202_095438\" width=\"700\" height=\"1244\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095438-e1480707036400-768x1365.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095438-e1480707036400-169x300.jpg 169w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095438-e1480707036400-576x1024.jpg 576w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a> <a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095428-e1480707054157.jpg\" data-rel=\"lightbox-image-12\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-945 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095428-e1480707054157-768x1365.jpg\" alt=\"20161202_095428\" width=\"700\" height=\"1244\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095428-e1480707054157-768x1365.jpg 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095428-e1480707054157-169x300.jpg 169w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095428-e1480707054157-576x1024.jpg 576w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a> <a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095259-e1480707070112.jpg\" data-rel=\"lightbox-image-13\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-943 size-medium_large\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_095259-e1480707070112-768x1365.jpg\" alt=\"20161202_095259\" width=\"700\" height=\"1244\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>this post explains how I produced the following series of images: all the images are based on photos from Archive.org. I\u00a0didn&#8217;t have anything special in mind, I just found these objects moving\u00a0; they were like action figures from long ago. the statues are quite small too, the printed version is roughly their actual size, small &#8230; <span class=\"more\"><a class=\"more-link\" href=\"http:\/\/barradeau.com\/blog\/?p=936\">[Read more&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":942,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"sharing_disabled":false,"spay_email":"","jetpack_publicize_message":""},"categories":[3],"tags":[],"jetpack_featured_media_url":"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/12\/20161202_094835-e1480708063735.jpg","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/p4oXhx-f6","_links":{"self":[{"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/936"}],"collection":[{"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=936"}],"version-history":[{"count":26,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/936\/revisions"}],"predecessor-version":[{"id":995,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/936\/revisions\/995"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/media\/942"}],"wp:attachment":[{"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=936"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}