Fiducial Support in Community Core Vision

January 29, 2010 Amit 2 comments

I can not wait to tell that after some effort I have been able to integrate ofxFiducialFinder (addon for openFrameworks by Alain Ramos) into the Community Core vision. Well its not complete.Just the integration have been done.  It can just track fiducials and “only fiducials”. I have just released the alpha version for testers so that I could know any mistakes in this and will try to work that out. Well, some points to note :-

  • This does not track fingers, only fiducials !!
  • This does not send TUIO messages
  • Only the fiducials  in this doc are supported
  • GPU Mode not yet implemented (removed from original due to some problems)

Here is an image tracking some of the markers.

I have not tested it in realtime setup because I dont have one (Currently building an LLP setup).I would like you to test it and tell me in which way it can be improved through comments / mail / twitter . I look forward to it.

Note : You need to play with your filter settings and get the best picture(black and white) in the right side big image.

DOWNLOAD - CCV-Fiducial-bin.zip

Also at box.net :- CCV-Fiducial-bin.zip

My First h/w Prototype for MT Setup : MT mini

November 24, 2009 Amit 9 comments

If you were thinking why I was quiet for more than a month , I can have an excuse :P . I was busy in making arrangements for the main project, getting funds, registering as academic project, getting projector, deciding the budget etc etc(not to mention taking rest for looooong time). So finally to open my mouth I thought I would make a prototype of this which is a MTMini of course .

So I will write about how I made it so that it helps people getting into this field easily.

Hardware:

All hardware I required was a carton(23cmx15cm) , a web-cam(normal USB 2.0 and 10 fps), and a piece of paper(A4 size).I did not use any plexiglass but for someone making it I will advise to use plexiglass as it gives support and will produce better blobs.

The photo shows all things used.

I dint except too much from it as it had lesser configuration and all but it really turned out pretty good. The camera had 10 fps and it still managed to perform pretty well . Also I was happy for the blob quality . I felt like I had the best config for CCV in the world :P .

Pic goes here :

Software:

Well the base of it is CCV. I used v 1.2 . for receiving the video and process it . I will post a few pics of the images captured .

I tried and did the demo of the photo app and Fluid solver to people which worked quite well and demonstrated about the actual use of multi-touch. I will have to use PyMT as there is not a lot of good flash apps to show up with MT Mini.

These are some of the pics that I had taken.

And Finally the pic which says it all :) . The pic of the CCV interface.

So Finally as thanks giving I want to thank all people who provided the hardware parts like webcam (Suraj), Carton (Chaitanya) and Paper (LP).And of course thanks to seth sandler’s idea,NUIGroup and of course the people who did bare me for this and all my friends :) .

Next I will be deciding about the dimension of the LLP setup which I am building. So this much for now :) .

Source Code of MTRuler and Discussion about the Classes used

November 2, 2009 Amit 2 comments

SOURCECODE: HERE

 

MTRuler

So as promised in my previous post I am going to release the sourcecode of the MTRuler application with some documentation . So basically this application consists of  3 classes.

  1. MTRuler.as
  2. MTButton.as
  3. Cross.as
  4. Utils.as

The class MTButton has been used before in NUIPad v0.1 .For the documentation of that you can refer here.In this application only the button “Calibrate 6Inch” uses this class.

The class Utils uses some static functions like rounding up,setting and getting the ppi,getting in cm scale given in pixels,getting in inch scale given in pixels etc.Also it has methods to set up in

The Cross class is a sprite which is added wherever we touch with a textbox to show the coordinates of the touching points. Also it has got a public method clear() which clears the graphics of all the components.This class takes input as x,y,width,height. That is where the blob position located and what will be the height and width of the cross heirs (which i always take as 3*screnwidth and 3* screen height so that it covers whole screen when moved.).

Then comes the main class MTRuler.as . Initially in the constructor all the components are added and also an event listener is added which executes the event handler with each frame being passed . The event handler function is update(e:Event) which checks the current blobs on the surface and then if there are two blobs then calculates the distance in different units and shows up in the resultbox. The resultbox is a component which is basically made up of RotatableScalable class.Also there is a variable called isCalibrating which is set in case of doing calibration. In the update function it checks if isCalibrating is set then it executes for calibrating or else it does the calculation . Also there is a function called doCalibration() which acts as event handler to the touchevent of the MTButton present.

So this is it for now . Anything else you want to know please ask me. Thanks . The sourcecode is attached at the top of this. Again I thank Christian Moore for his guidance in the making of this application.

MTRuler : Applying multitouch In Daily Life

November 1, 2009 Amit Leave a comment

DOWNLOAD : HERE

I was quite busy last few days having to set up a mail server in campus (check mail.bits-goa.ac.in) , had python workshop and had some CSD projects . Anyway for last 2 days i have been making this app and was successful yesterday. The purpose of Human Computer Interaction is to make the interaction between the computer and human more and more natural. So that there remains no difference between the computer literate and illiterate . Both use the computer as they use any other normal daily life machines.

So one day i got an idea that if we can just put anything on the multitouch screen and get its dimensions . Well then i thought we might not always want all dimensions but just few lengths . So i thought of this application . Christain Moore gave me an application which demonstrated this very nicely and I got idea how to start and build it. But then it was just able to measure in pixels which we don’t use in our daily life. So I was more interested in making it measure in Inches and Cms. After a little research i found out that this depends upon the dpi(dots per inches) which depends upon the screen and can not be found by any means with any programming. So I decided finally that the application can be calibrated so that it can show the values of the length in inches and cms.

MTRuler2

P.S : This Application supports 2 touches (as for measurement u can use only two touches ) and 3 touches sometime (like while calibrating ).

So as you click on the application, the app will run in full-screen mode. If this is the first time you are doing this (or if you have never calibrated before) then the scoreboard will show only in pixels results and others (like Inches and Cms) will show N/A . You can try this by just putting two fingers at any two points, between which the distance you want to measure.This is all set if you want to measure in pixels.

Next is to calibrate this to measure even the Inches and Cms . I have made the app so that we only calibrate for Inches and it converts itself into Cms itself (given the conversion that 1 Inch=2.54 cms) . So to calibrate just press the which button which says “Calibrate 6Inch” . That means you can calibrate for 6 inches. So Just press that and the button will move to the middle of the stage. Now put a scale on the screen and touch at 2 places on the screen and adjust so that the two cursors are at 6 Inch distance. After you adjust that just click on the third place on the screen and the button returns to its original place . That means the calibration is done. Now you are all set to go to use it .

Now touch at any two points in the screen and it shows up the distance between the two points in Inches, Cms and pixels.The result box can be dragged anywhere and scaled to any amount (Hail RotatableScalable). This only supports length and distance between two points at the moment. Will try to add more support if i get time in future . Enjoy. In the next post I will discuss about the classes used and how this works . Thanks again to Christian Moore for his guidance .