{"id":18609,"date":"2015-03-23T02:28:15","date_gmt":"2015-03-23T06:28:15","guid":{"rendered":"https:\/\/reactivemusic.net\/?p=18609"},"modified":"2015-03-23T02:48:07","modified_gmt":"2015-03-23T06:48:07","slug":"cv-jit-revisited","status":"publish","type":"post","link":"https:\/\/reactivemusic.net\/?p=18609","title":{"rendered":"cv.jit revisited"},"content":{"rendered":"<p class=\"lead\">Jitter computer vision library<\/p>\n<p><cite>By Jean-Marc Pelletier<\/cite><\/p>\n<p><a href=\"http:\/\/jmpelletier.com\/cvjit\/\">http:\/\/jmpelletier.com\/cvjit\/<\/a><\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18610\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM-300x250.png\" alt=\"Screen Shot 2015-03-23 at 2.24.37 AM\" width=\"300\" height=\"250\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM-300x250.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM-1024x854.png 1024w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM.png 1570w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Several examples you can try by running the &#8220;help&#8221; files. All of the explanatory text below is by Jean-Marc Pelletier.<\/p>\n<h5>cv.jit.blobs.elongation<\/h5>\n<p>The utility abstraction cv.jit.blobs.elongation.draw superimposes elongation values on the image sent to its right inlet. You MUST also connect the output of cv.jit.blobs.moments to its middle inlet. You can use the attribute &#8220;frgb&#8221; to set the colour used.<\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.27.20-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18611\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.27.20-AM-300x218.png\" alt=\"Screen Shot 2015-03-23 at 2.27.20 AM\" width=\"300\" height=\"218\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.27.20-AM-300x218.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.27.20-AM.png 636w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h5>cv.jit.binedge<\/h5>\n<p>Marks as ON only pixels that are themselves ON and have a least one OFF neighbour. In other words, it returns only the edges in a binary image.<\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.29.39-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18614\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.29.39-AM-300x226.png\" alt=\"Screen Shot 2015-03-23 at 2.29.39 AM\" width=\"300\" height=\"226\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.29.39-AM-300x226.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.29.39-AM.png 628w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h5>cv.jit.blobs.bounds<\/h5>\n<p>cv.jit.blobs.bounds offers similar functionality to jit.findbounds but finds the bounding box for every blob in a labeled image.<\/p>\n<p>cv.jit.blobs.bounds outputs a 4-plane 1-dimension float32 matrix whose number of cells is the same as the number of blobs in the input image.<\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.31.16-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18615\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.31.16-AM-300x218.png\" alt=\"Screen Shot 2015-03-23 at 2.31.16 AM\" width=\"300\" height=\"218\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.31.16-AM-300x218.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.31.16-AM.png 630w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h5>cv.jit.blobs.centroids<\/h5>\n<p>cv.jit.blobs.centroids functions much like cv.jit.centroids except that it takes for input the output of cv.jit.label and calculates the center of mass and area of each connected component individually.<\/p>\n<p>The output of cv.jit.label must be of type char.<\/p>\n<p>cv.jit.blobs outputs a single-row, 3-plane char matrix where the number of cells is the same as the number of labeled components.<\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.32.59-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18616\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.32.59-AM-300x227.png\" alt=\"Screen Shot 2015-03-23 at 2.32.59 AM\" width=\"300\" height=\"227\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.32.59-AM-300x227.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.32.59-AM.png 618w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h5>cv.jit.blobs.direction<\/h5>\n<p>cv.jit.blobs.direction is almost identical to cv.jit.blobs.orientation. It also takes in the output of cv.jit.blobs.moments and calculates the orientation of each blob&#8217;s main axis. However, unlike cv.jit.blobs.orientation, it takes into account symmetry. This means that cv.jit.blobs.direction can tell which direction a connected component is pointing.<\/p>\n<p>Like cv.jit.blobs.orientation, the output is in radians by default and can be changed to degrees with the &#8220;mode&#8221; attribute. The output is between 0 and 2Pi.<\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.34.38-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18618\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.34.38-AM-300x227.png\" alt=\"Screen Shot 2015-03-23 at 2.34.38 AM\" width=\"300\" height=\"227\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.34.38-AM-300x227.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.34.38-AM.png 612w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h5>\u00a0cv.jit.blobs.moments<\/h5>\n<p>cv.jit.blobs.moments functions much like cv.jit.moments but computes moments and invariants for every blob identified by cv.jit.label. See cv.jit.moments for a discussion on moments and invariants.<\/p>\n<p>The output is a 17-plane, single-row float32 matrix. The number of cells is the same as the number of connected components.<\/p>\n<p>The output of cv.jit.moments can be fed to other objects for further analysis. See cv.jit.blobs.orientation, cv.jit.blobs.direction, cv.jit.blobs.elongation, and cv.jit.blobs.recon.<\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.36.34-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18619\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.36.34-AM-300x267.png\" alt=\"Screen Shot 2015-03-23 at 2.36.34 AM\" width=\"300\" height=\"267\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.36.34-AM-300x267.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.36.34-AM.png 726w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h5>cv.jit.blobs.orientation<\/h5>\n<p>cv.jit.blobs.orientation functions much like cv.jit.orientation except that it takes for input the output of cv.jit.blobs.moments and calculates the orientation of the main axis of each connected component individually.<\/p>\n<p>cv.jit.blobs.orientation outputs a single-row, 1-plane char matrix where the number of cells is the same as the number of labeled components.<\/p>\n<p>Orientation is measured in radians by default but you can switch to degree output by specifying &#8220;mode 1&#8221;. The values are between 0. and Pi radians, with the extremes being horizontal and Pi\/2 vertical.<\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.38.22-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18620\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.38.22-AM-300x219.png\" alt=\"Screen Shot 2015-03-23 at 2.38.22 AM\" width=\"300\" height=\"219\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.38.22-AM-300x219.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.38.22-AM.png 628w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h5>cv.jit.blobs.recon<\/h5>\n<p>cv.jit.blobs.recon calculates the statistical distance between blob shape descriptors and a pre-computed model. The model must be created using cv.jit.learn, and cv.jit.blobs.recon functions much like cv.jit.learn&#8217;s &#8220;compare&#8221; mode.<\/p>\n<p>cv.jit.blobs.recon must be fed the output of cv.jit.blobs.moments. Use the &#8220;mode&#8221; attribute to set whether moments (0) or Hu invariants (1) are used. Make sure that this matches the data used to train the model.<\/p>\n<p>The output is a 1-plane float32 matrix, in which each cell contains the statistical distance between the corresponding blob and the model.. The lower the output value, the more similar the blob&#8217;s shape is to the model.<\/p>\n<p><a href=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.41.13-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-18621\" src=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.41.13-AM-300x236.png\" alt=\"Screen Shot 2015-03-23 at 2.41.13 AM\" width=\"300\" height=\"236\" srcset=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.41.13-AM-300x236.png 300w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.41.13-AM-1024x807.png 1024w, https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.41.13-AM.png 1372w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jitter computer vision library By Jean-Marc Pelletier http:\/\/jmpelletier.com\/cvjit\/ Several examples you can try by running the &#8220;help&#8221; files. All of the explanatory text below is by Jean-Marc Pelletier. cv.jit.blobs.elongation The utility abstraction cv.jit.blobs.elongation.draw superimposes elongation values on the image sent to its right inlet. You MUST also connect the output of cv.jit.blobs.moments to its middle &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/reactivemusic.net\/?p=18609\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;cv.jit revisited&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"categories":[143,28],"tags":[313,72,51,330],"class_list":["post-18609","post","type-post","status-publish","format-standard","hentry","category-interactive-media-art","category-maxmsp","tag-ai","tag-graphics","tag-jitter","tag-open-gl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>cv.jit revisited - reactive music<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/reactivemusic.net\/?p=18609\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"cv.jit revisited - reactive music\" \/>\n<meta property=\"og:description\" content=\"Jitter computer vision library By Jean-Marc Pelletier http:\/\/jmpelletier.com\/cvjit\/ Several examples you can try by running the &#8220;help&#8221; files. All of the explanatory text below is by Jean-Marc Pelletier. cv.jit.blobs.elongation The utility abstraction cv.jit.blobs.elongation.draw superimposes elongation values on the image sent to its right inlet. You MUST also connect the output of cv.jit.blobs.moments to its middle &hellip; Continue reading &quot;cv.jit revisited&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/reactivemusic.net\/?p=18609\" \/>\n<meta property=\"og:site_name\" content=\"reactive music\" \/>\n<meta property=\"article:published_time\" content=\"2015-03-23T06:28:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-03-23T06:48:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM-300x250.png\" \/>\n<meta name=\"author\" content=\"Tom Zicarelli\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tom Zicarelli\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609\"},\"author\":{\"name\":\"Tom Zicarelli\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#\\\/schema\\\/person\\\/56224d281582df7e5518e037ca63e571\"},\"headline\":\"cv.jit revisited\",\"datePublished\":\"2015-03-23T06:28:15+00:00\",\"dateModified\":\"2015-03-23T06:48:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609\"},\"wordCount\":639,\"image\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/reactivemusic.net\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/Screen-Shot-2015-03-23-at-2.24.37-AM-300x250.png\",\"keywords\":[\"AI\",\"graphics\",\"jitter\",\"open GL\"],\"articleSection\":[\"interactive media art\",\"Max\\\/MSP\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609\",\"url\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609\",\"name\":\"cv.jit revisited - reactive music\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/reactivemusic.net\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/Screen-Shot-2015-03-23-at-2.24.37-AM-300x250.png\",\"datePublished\":\"2015-03-23T06:28:15+00:00\",\"dateModified\":\"2015-03-23T06:48:07+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#\\\/schema\\\/person\\\/56224d281582df7e5518e037ca63e571\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/reactivemusic.net\\\/?p=18609\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609#primaryimage\",\"url\":\"https:\\\/\\\/reactivemusic.net\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/Screen-Shot-2015-03-23-at-2.24.37-AM.png\",\"contentUrl\":\"https:\\\/\\\/reactivemusic.net\\\/wp-content\\\/uploads\\\/2015\\\/03\\\/Screen-Shot-2015-03-23-at-2.24.37-AM.png\",\"width\":1570,\"height\":1310},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/?p=18609#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/reactivemusic.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"cv.jit revisited\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#website\",\"url\":\"https:\\\/\\\/reactivemusic.net\\\/\",\"name\":\"reactive music\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/reactivemusic.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/reactivemusic.net\\\/#\\\/schema\\\/person\\\/56224d281582df7e5518e037ca63e571\",\"name\":\"Tom Zicarelli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g\",\"caption\":\"Tom Zicarelli\"},\"sameAs\":[\"http:\\\/\\\/tomzicarelli.com\"],\"url\":\"https:\\\/\\\/reactivemusic.net\\\/?author=2\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"cv.jit revisited - reactive music","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/reactivemusic.net\/?p=18609","og_locale":"en_US","og_type":"article","og_title":"cv.jit revisited - reactive music","og_description":"Jitter computer vision library By Jean-Marc Pelletier http:\/\/jmpelletier.com\/cvjit\/ Several examples you can try by running the &#8220;help&#8221; files. All of the explanatory text below is by Jean-Marc Pelletier. cv.jit.blobs.elongation The utility abstraction cv.jit.blobs.elongation.draw superimposes elongation values on the image sent to its right inlet. You MUST also connect the output of cv.jit.blobs.moments to its middle &hellip; Continue reading \"cv.jit revisited\"","og_url":"https:\/\/reactivemusic.net\/?p=18609","og_site_name":"reactive music","article_published_time":"2015-03-23T06:28:15+00:00","article_modified_time":"2015-03-23T06:48:07+00:00","og_image":[{"url":"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM-300x250.png","type":"","width":"","height":""}],"author":"Tom Zicarelli","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Tom Zicarelli","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/reactivemusic.net\/?p=18609#article","isPartOf":{"@id":"https:\/\/reactivemusic.net\/?p=18609"},"author":{"name":"Tom Zicarelli","@id":"https:\/\/reactivemusic.net\/#\/schema\/person\/56224d281582df7e5518e037ca63e571"},"headline":"cv.jit revisited","datePublished":"2015-03-23T06:28:15+00:00","dateModified":"2015-03-23T06:48:07+00:00","mainEntityOfPage":{"@id":"https:\/\/reactivemusic.net\/?p=18609"},"wordCount":639,"image":{"@id":"https:\/\/reactivemusic.net\/?p=18609#primaryimage"},"thumbnailUrl":"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM-300x250.png","keywords":["AI","graphics","jitter","open GL"],"articleSection":["interactive media art","Max\/MSP"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/reactivemusic.net\/?p=18609","url":"https:\/\/reactivemusic.net\/?p=18609","name":"cv.jit revisited - reactive music","isPartOf":{"@id":"https:\/\/reactivemusic.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/reactivemusic.net\/?p=18609#primaryimage"},"image":{"@id":"https:\/\/reactivemusic.net\/?p=18609#primaryimage"},"thumbnailUrl":"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM-300x250.png","datePublished":"2015-03-23T06:28:15+00:00","dateModified":"2015-03-23T06:48:07+00:00","author":{"@id":"https:\/\/reactivemusic.net\/#\/schema\/person\/56224d281582df7e5518e037ca63e571"},"breadcrumb":{"@id":"https:\/\/reactivemusic.net\/?p=18609#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/reactivemusic.net\/?p=18609"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/reactivemusic.net\/?p=18609#primaryimage","url":"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM.png","contentUrl":"https:\/\/reactivemusic.net\/wp-content\/uploads\/2015\/03\/Screen-Shot-2015-03-23-at-2.24.37-AM.png","width":1570,"height":1310},{"@type":"BreadcrumbList","@id":"https:\/\/reactivemusic.net\/?p=18609#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/reactivemusic.net\/"},{"@type":"ListItem","position":2,"name":"cv.jit revisited"}]},{"@type":"WebSite","@id":"https:\/\/reactivemusic.net\/#website","url":"https:\/\/reactivemusic.net\/","name":"reactive music","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/reactivemusic.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/reactivemusic.net\/#\/schema\/person\/56224d281582df7e5518e037ca63e571","name":"Tom Zicarelli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0da58cf21a2707dd335b204b8ed3cd9194dcbf9d9814ac5d71195a65c76c8a72?s=96&d=mm&r=g","caption":"Tom Zicarelli"},"sameAs":["http:\/\/tomzicarelli.com"],"url":"https:\/\/reactivemusic.net\/?author=2"}]}},"_links":{"self":[{"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/posts\/18609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18609"}],"version-history":[{"count":6,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/posts\/18609\/revisions"}],"predecessor-version":[{"id":18624,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=\/wp\/v2\/posts\/18609\/revisions\/18624"}],"wp:attachment":[{"href":"https:\/\/reactivemusic.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=18609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reactivemusic.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=18609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}