Thanks for all the replies on this. I'm going to take a look at what is available. I haven't seen anything yet that uses the "image outline" patches to define regions -- which seems to be a better start before color region. However, I think that once I get something that "kinda works" -- it's going to take a guru in CIKernel function to optimize.
Thinking out loud (before looking at all the ideas -- I like to do this to see if I'm on track, and to get some creative ideas that might change after someone gives me an answer); I think I can assume that someone waving their hands first to get "attention" from the kiosk, or just noticing that the kiosk is doing something when they pass in front of it -- then after that, the motion would be in a region within, say 128 pixels (1/4 the image size) from the previous frame grab-- any faster and it would be nonsense anyway. Motion detection would activate some sort of image to give feedback of where the "hand mouse" is pointing. Rather than putting the "cursor" exactly where I'm detecting my X & Y for greatest motion and smallest region, I can use some routines that "chase" the mouse -- the cursor would follow a "smoothing" algorithm that has rate and direction, to attempt to catch up to the user's pointing. I'll have to plot about 5 most recent "hot pixels" and work out the most "likely" current position, since I'm likely to get sporadic "hot spots." Extremely Pseudo-code: ++ Assume running video camera at 15 FPS should be good enough. ++ Background extraction -- if no change in image is detected after startup + 10 seconds, then store image. Sample camera every 10 seconds thereafter and see if there is a change. Somehow, I need to find a way to use "gray levels" when using the invert and compare current to previous image, to only get drastic changes. Flickering light or some incidental change could trick an activation phase. ++ If a sufficient change is detected, Activate a blinking cursor. ++ If change in image every second after for 3 seconds, Activate tracker cursor. ++ After activation, I'd crop to a 128x64 region. ++ Track "motion" area. ++ Crop to 64x64, and apply outline detection (maybe) with color region image processing to find smallest 'region' of movement and/or most moved (if possible) ++ Crop then to the outline of the color region (or not, depending if it increases efficiency). ++ Then, I'm assuming I can find the "most moved" and brightest pixel of the color region (within outline), store the X and Y coordinate. ++ I will have had to store the "master" pixel region from my 3 crops -- 320x240,128x64,64x64,WxH (if a final crop was used). Any intensive image processing should if possible, occur after the image is smaller than 64x64, and I can use tricks and assumptions to narrow it down to this. I can assume also that any "reasonable" speed of hand motion would be within 32 pixels of the previous frame grab. So I look for my next crop of the 320x240 area 32 pixels away -- and throw away any region that is NOT in both frame grabs. ++ Compare hot pixel region to average of last 5 results. Don't register a "move" if hot pixel is less than 10 (5?) pixels from last 3 sampled points. Update cursor to "move toward" this location. ++ Fade previous hot spots, remove last hotspot. ++ If cursor is over a hotspot for 22 samples (~1.5 seconds), assume that it is selected. Make it now follow the users motion for further action. Motion down would bring it forward--activate a video, zoom an image or load a Composition. Up would push it away--to put away and bring up other icons for other options. Right to play, and Left to rewind (if video). I'd love to use actual hands, and animate an image like virtual hands while tracking two points like the "majority report" -- but I'm going to be happy just to get this working. It would definitely provide good feedback, however, to perhaps display my 5 tracking points (with fade out) to give the user and intuition on what is being tracked and the vector. Someone might notice it's "going after their tie" and just automatically run their hand in front of their tie to "grab" the mouse. I've read a few hacks out on various websites about converting a video camera that has "low light" or night capabilities to just use the infrared-- but that would require another investment -- I'll see if this works first. The same principles should apply, only "heat" is going to get the hand better, and perhaps some distance information. >> Any ideas that might use "pausing" for selection of an item on screen, some intuitive way for a person to "click" or would make this work, are well appreciated. I'm relatively inexperienced with QC compared to many here. Best Regards, Mark Johnson _______________________________________________ Do not post admin requests to the list. They will be ignored. Quartzcomposer-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]

