CIKernel

what is the best way to do a pixel x pixel search

dust's picture

so i am in a class that is trying to propose a grant because new media is becoming an emerging cluster in my state. it is obviously a established cluster in many other geographical locations. this is all new to me because it is cluster economics class not cluster computing which i thought i signed up for. thats besides the point, the technology initiative has all ready given grants for the "iPointer" http://www.i-spatialtech.com/ which we are working with.

when it was conceived it was an amazing idea but the iphone went and blew the market away for gps / spatial programs or what ever. so this system points at a building and 3d information comes up on your phone. so far all of denver, colorado is mapped and modeled. this is a great idea, but you can't point it at a chair and have it say chair, like you can with rapid object detection in open CV with the haar kit. i think they have now ported open cv to the arm chip im not sure haven't played with computer vision since i made that spatter paint program this summer.

so this i pointer got me thinking of a way to detect full landmarks from a picture or video source and then pull up a 3d representation of said picture in quartz composer?

is there a way to do a pixel by pixel search with a CI filter. i have seen the image pixel patch. there used to be a rgb average mean filter in leopard but its gone in SL. thats ok because i can make my own average mean calculation later?

what would be the best patch to well record all the pixels in an image or is this a task for a ci kernel. i am about to try and iterate through the pixel image patch and record the rgb info, would this be the best approach ?

here is a example that actually works kind of well using the histogram to compare. the tolerance or disparity between the image thresholds is .0001 on this implementation with the histogram which baffles me how accurate it is. anyways i thought i would try doing something like the i pointer in qc negating the spatial data and just using a camera.

so yeah to re phrase i guess whats the best way to search pixel by pixel ?

here is an example with histogram just take a pic of your self and put it onto the data image splitter then hit play to see if it will recognize you.

CIKernel Color Tracking

dust's picture

so i have been messing with color tracking today. a few years back i made an ambient light theremin in max utilizing the 3m or average rgb mean of a video input, entirely simple. so i decided to cobble together a ci color tracker from the source at apple. i have found some things on google,

http://lists.apple.com/archives/Quartz-dev/2008/Mar/msg00137.html http://petterniklas.wordpress.com/

i can't really find anything on kineme on the subject. i planed on making a plugin to do this but found it was just as simple to copy the kernal into a ci patch in quartz. so with my limited cocoa and ci skillz i have been able to patch together a few kernels to track a color. similar to the apple example.

i want to know if this topic has been discussed as i want to learn more about ci as well as maybe get some help to infer a better z depth. i found some people wanting color tracking in a open cv thread. i know GT posted a link to the ci tracker before and was wondering if anybody has got this working 60fps.

as it is this is working and tracking the color orange you can give it a try if you like. track what ever color you want. i am still trying to grasp some concepts, looks like i need to buy the gpu gems book.

Perlin Noise CIKernel (Composition by smokris)

Author: smokris
License: MIT
Date: 2009.02.26
Compatibility: 10.5, 10.6
Categories:
Required plugins:
(none)

Here's a CIKernel implementation of the Improved Perlin Noise algorithm, based on the reference implementation http://mrl.nyu.edu/~perlin/noise/ .

Drop "Perlin Noise CIKernel.qtz" into ~/Library/Graphics/Quartz Composer Patches, and it'll appear in the Patch Creator.

"perlin.qtz" is an example of how to use it.

This is fairly inefficient, as Core Image Kernel Language doesn't support arrays (!), so I ended up dumping the Perlin permutation array into an image (see "perlin-tga.c") and then loading the image into QC and sampling it. Suggestions regarding how to improve performance are welcomed.