This project is read-only.

Can I join the team?

Oct 29, 2009 at 2:08 PM

How can I join the team as a contributor?



Oct 30, 2009 at 2:18 AM
Edited Oct 30, 2009 at 2:19 AM

Hey juliano, I'm glad you're interested in contributing to Touchless!

In order to become a contributor, I encourage you to express some specific interests/experience for improving the project. You can prepare a patch, draft some rough design outlines, or maybe just write up an idea or two. If you're headed in the right direction and express honest interest in contribution, you can have direct access. I added this stipulation after adding a couple 'contributors' that never contribute or respond to mail after they are granted direct source access. Post here, PM, or e-mail me to move forward. Looking forward to some fresh talent!

- Mike

Nov 19, 2009 at 3:27 PM

Hi Mike,

Sorry for the late response, the last few weeks has been busy. I have two ideas for touchless. The first would be a flip on the position detection algorithm so if in front of the webcam I move an object to my left, the cursor repeat the same movement instead of going right.

The second idea is a sample app. It's a motion detection algorithm but limited to a specify area, so if I move the object being watched outside the boundaries I've just configured, it won't make cursor move.

That's it.


Sorry for any errors on my text.

Nov 20, 2009 at 9:18 AM

Hey juliano,

the first idea is already possible using the RotateFlip Property of the Camera class, or do you mind flipping the wole image?

I already created a sample for the second idea about half a year ago, if you want, I can share my code and you may prepare an extended sample for the website, I myself lack the time for this at the moment...

Nov 20, 2009 at 8:54 PM

If you don't want to use the RotateFlip property, most webcams have a "horizontal flip" or "mirror" option in thier properties windows you can call with touchless as seen in the demo. As eFloh said, the second idea is simply code you can write that wouldn't take up any more than a couple if statements. I am using that for my project but reversed. if it's inside a certain area, the program doesn't track the marker.

Nov 21, 2009 at 9:14 AM
Edited Nov 21, 2009 at 9:19 AM

Well, I expanded the "restricted area" a bit:

I use a 3x3 grid over the whole cam image area. The big center area is used to move the mouse, the border regions are used to perform mouse button actions or toexecute other functions.

The mouse is captured when the marker is inside the move area for at least a second, thus short false positives and "move overs" are ignored. When the marker appears in a button or command area, it has to be visible there for at least <insert favorite timespan> ms before the action is executed. This delay time is made visible using a 50% opacity progress bar filling the corresponding region.

My latest idea is to add two new buttons that "zoom/unzoom" the move area so that one can roughly place the pointer on the whole screen, then switch to zoom mode where only a 20% area (or such) around the starting pointer location can be reached with the mouse move area. Another idea is to change the absolute screen mapping to an 8-way relative movement pad as seen in the image demo by Mike.


left button click (additional command buttons) right button click
  Mouse move area  
left double click (additional command buttons) middle button click
Nov 21, 2009 at 7:00 PM

The idea would be the rotation of the points instead of the webcam image, but I think this would solve the problem.

eFloh, I like your idea for commands. Can you share the code you have mentioned?