Image Pixel

Hi, I’m a user that plans on migrating from Quartz Composer basically as soon as it’s possible. I’ve been excited for Vuo a long time, and I appreciate both the scope of the Vuo project and the distance it’s come since it was first announced. Right now, a number of projects I’ve done with Quartz Composer leaned heavily on the combination of Iterator & Image Pixel patches. It’s gotten harder to work with as time goes on, however, so I find myself fighting crashes and slowdown whenever I want to revisit old projects. I understand that the roadmap has the basic/advanced iterator behavior covered, so I’d like to request the implementation of a patch equivalent to Image Pixel.

A typical flow would be something like this:

Input image → parametrically choose image pixel coordinate → Use pixel brightness or color to drive output

This project (http://cargo.andrewohlmann.com/Fake-Math) basically had little Tron-style drivers that left walls behind them and used the ‘image pixel’ patch to look a pixel ahead, detect where the next wall was, and initiate a turn. This project (http://cargo.andrewohlmann.com/QC-Painter) used random individual pixels as triggers for sprite-based brushes.

While I use it individually or in iterators to generate grids (another example: https://vimeo.com/15940273 ), I could also see it be used more programmatically, as in “find the brightest spot in this image”.

Proposed I/O

Inputs

  • Image
  • X coordinate
  • Y coordinate
  • Sample radius — used to crop a subsection of the image extending equally from the X/Y coordinates, average all colors inside it, and return the average color of that sample area. A value of 1 would crop, average, and sample a 3x3 pixel grid of the image, with the XY coordinate pixel in the center cell.

Options

  • Output color type — Native color, or segregated HSL, RGB, HSV, CMYK[?], alpha values.
  • Wrap image edge — When I sample an area with a radius of 2 in the top left corner, do I want to limit my sample to a 3x3 grid in the top left, or do I want to grab the 2 pixels from the other edges? See attached mockup.

Outputs

  • Color

Thanks for taking the time to read and consider this request.

example.png

a_o,

Thanks for suggesting this. We’ve opened it up for pledging.

Work in progress.

In Vuo 1.1, we added the Sample Color from Image node. It outputs a VuoColor, which you can then feed to Get HSL Color Values if you like.

We haven’t implemented wrapping yet; I branched another feature request for wrapping.

Radical! Thank you so much… Can’t wait to dig into this :)