topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Friday April 26, 2024, 9:22 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - VideoInPicture [ switch to compact view ]

Pages: prev1 ... 13 14 15 16 17 [18] 19next
426
I think that this might be kinda tough to code, if it is even possible, because you would have to go pretty low level in Windows to fool it into thinking you have more than one monitor when you only have one.

427
Does anyone know of some software that can allow you to simulate multiple monitors on a single screen? I think this would help me A LOT in my debugging of code I write so that it is multi-monitor compatible.

428
Eric,

Circle Dock doesn't like to move from one monitor to the other on my two-monitor system.
It will move around on either screen but will not cross the boundary from one to the other.
In the attached image the vertical green line represents the division between my screens.

Windows XP Pro SP3.


-cranioscopical (July 14, 2008, 06:33 AM)

Hmm, that is a weird problem. I don't have a multi-monitor system myself but if you are able to have Circle Dock show up on either monitor, I would expect you to be able to move it across the monitor boundaries. I wonder what the problem might be. I'll need a multi-monitor system to test it out but I don't know of anyone that has one so this might be an issue that will take a while to sort out unless I can just spot it in my code. I just wish that .Net treated a multi-monitor system as a single entity and kept things simplified so these things wouldn't happen. Most programmers just don't care how many monitors you have, just the pixel sizes.

429
I'm going to be rewriting Circle Dock from scratch with a better program design
-VideoInPicture (July 14, 2008, 01:21 AM)

Sort of very good to hear this (keen on a better design  :up:, slightly impatient for developments  :-\). Very, very happy to hear that you will continue developing it  :-*.

It's very nice to have something entirely designed around the mouse for those of us who use the mouse most of the time.

One suggestion I would make for the future is hierarchical folders of applications, which can either be opened or closed (as on a folder tree). This is partly as a way of only having the icons I might use right now being visible, but also as a way of grouping icons (otherwise the prog seems to move them about every time the settings are changed).



Suggestion noted. I'll keep this in mind as I plan the architecture of the program. I'm going to do lots of detailed planning and more code research this time so that I can keep the program flexible and modular.

430
Eric I hope you won't take this the wrong way -- but I really cannot wait until you decide to sink your teeth into a project that has a little more practical use and is little less of a proof-of-concept thing. 

I have to say, I would like this project developed beyond the proof-of-concept stage as I see it having a lot of practical use for me. I can see that I might no longer 'need' Object or Rocket docks. OTOH, I do understand that keyboard whizzes might not see the point at all.

PS - the rotation with the mouse scroll button is very, very cool when it is on the edge of the screen. 8) 8) :up:

PPS - I have to agree with Mouser. Seems incredible to me (admittedly a non-programmer) that you can do this in 2 weeks. Not just for the technical skill, but the quality of the ideas behind the program & its implementation.

I'm going to be rewriting Circle Dock from scratch with a better program design because I've learned a lot about what needs to be done for a dock in this first version. I'll be addressing the performance and modularity issues of the current version and I'll be designing the program so that you are able to use current Object Dock docklets in Circle Dock. It might take a while though. Anyone interested in joining the project? The language to be used will either be Visual Basic .Net or C#.

431
I've compiled a new version of Circle Dock to try to solve these mysterious crashes. I have compiled Circle Dock 0.9.1 to be used with the .Net Framework 3.5 instead of the older 2.0 version so this should help with stability for those that are having trouble. This also means that you must now have the .Net Framework 3.5 or later installed on your computer to use the program. Instructions are on the download page: http://circledock.wi...download-circle-dock

Let me know if this new version helps out.

432
I have reports from some users that the program crashes when they try to add a icon/link to the dock and no useful error message pops up.
-VideoInPicture (July 12, 2008, 04:18 PM)
Yep, I've got this.
Also seems to have disabled ObjectDock (but not RocketDock) and my taskbar (True Launch Bar) is not accessible when Circle Dock is active.

Later Observations
Well, behaviour a bit inconsistent. Have been able to add icons/links - sometimes it crashes CircleDock, sometimes it doesn't. ObjectDock returned when I restarted it and seemed to function fine then (I have noticed previously that ObjectDock seems to crash/disappear more often than RocketDock), but usually won't open when CircleDock is active. TLB never opens when Circle Dock is active.

Memory usage seems high though, and rotating the circle/spiral seems to make a huge hit on the CPU.

Still seems very nice though. Especially for a 0.9.

Okay, I'm going on a hunch here but I think I may know what is causing instability for some people. I think it may be the version of the .Net Framework you have on your Windows computer. I have the latest version of .Net, which is 3.5. Go to http://www.microsoft...DownloadCurrent.aspx and install the latest version of .Net and try running Circle Dock again. Tell me if it helps. Some people say the program works fine while others seem to be having a lot of trouble.

As for Circle Dock disabling other programs, I have no idea how it is even doing that because it doesn't interact with other programs or lock down system resources other that what's inside its own folder. On my computer (Vista 32 bit premium, .Net 3.5) I can have Object Dock, Rocket Dock, and Circle Dock all running together at the same time without problems.

On my computer, Circle Dock uses about 20-30 megs of memory running, depending on the number of icons. I think this is acceptable for now but I think there is room for improvement. The architecture of the program isn't really optimized for performance right now. It is basically redrawing an image the size of your screen everytime it needs to refresh because that is the simplest way to do it. Circle Dock 0.9 is basically a proof of concept since it is the first release. There is a lot of room for improvement, but it will take me time to plan it out and carry it through effectively.

433
I have reports from some users that the program crashes when they try to add a icon/link to the dock and no useful error message pops up. Others aren't having this problem (like me) so I'll have to investigate this. It is really baffling me what is wrong. If someone here has the same problem, please download the source code from http://circledock.wikidot.com and run it using Visual Basic Express 2008 (free). Then, when the program crashes, you'll know where it is crashing and what the error message is.

434
My second submission for the DC Programming Contest: https://www.donation...ex.php?topic=14039.0 (Circle Dock - The world's first open source circle and spiral dock.)

435
CircleDockCircle.JPG1
CircleDockWheel.JPG2
RedDockCentre.JPG3
CircleDockLeft.JPG4
RedDockRight.JPG5
CircleDockSpiral.JPG6

YouTube video of the program: http://www.youtube.c.../watch?v=6bXbj_LdS80

Download the Program and Source Code at: http://circledock.wikidot.com/


This is my second submission for the Donation Coder Programming Contest. It is the world's first open source circular and spiral dock.


What Circle Dock Allows You to Do:

Drag and drop your files, folders, and shortcuts onto a circular or spiral dock.
Rotate the dock with either your mouse wheel or the keyboard arrow keys.
Change the image shown for the icons and change the skins (compatible with icons and skins for Rocket Dock, Object Dock, etc.)
Ability to run the program from a portable USB memory stick and have the links in the dock point to the documents on the USB memory stick.
Ability to synchronize the links on the dock with the files, folders, and shortcuts on your desktop or other folders in real-time.
The dock appears where your mouse is by pressing a hotkey.
Works on computers with multiple monitors.

The Idea Behind Circle Dock

The idea behind Circle Dock is that the dock should appear where your mouse is instead of you having to move your mouse to the dock like with other programs. This is accomplished by making the dock a circular or spiral shape so that it can be placed anywhere, even near the edge of the screen. The offscreen portions of the dock are easily reached by just scrolling with your mouse wheel or arrow keys.

A user defined hotkey combination is used to make the dock appear and disappear. By default, this combination is CTRL-WINDOWS KEY. You can change it in the settings area of the program.

If you have a mouse with extra buttons or you want to make one of your mouse buttons activate the dock, I recommend you use the program from http://www.highrez.c...useButtonControl.htm and use it to remap your mouse buttons. This makes it very convenient to toggle Circle Dock.

The current version of Circle Dock is 0.9. It is not feature complete when compared to the full fledged docks out there, such as Rocket Dock and Object Dock, but this program was coded in under 2 weeks for a programming competition at www.donationcoder.com so there was not enough time to investigate every standard dock feature and code it. As the program develops, more standard dock features will be added.


436
This analysis was a great read VideoInPicture!  :Thmbsup:

In all the linked youtube videos people have their webcam in the standard position above the screen. But maybe different placement would give better results? For example, for mouse simulation a webcam could be placed in front of the regular mouse position and the hand (with some marker on the fingers) could then occupy the regular mouse position. That way one hand could have mouse control while the other is at the keyboard, like with a real mouse.

A (quirky) thought I got when reading this: will it work with multiple webcams? In a driving game one cam could register a wheel object while another camera, on the floor, registers foot movement (acceleration/brake pedals)  :D


If you reposition the webcam to where the mouse usually is, I think you will lose the big benefit of the program, which is to provide a more natural input method and move away from traditional input mechanisms. You also have to be able to select objects and click with the mouse so you will likely need both hands to actuate the mouse. I haven't seen a viable input scheme from all the computer vision articles I have read that uses just one hand. To successfully implement a webcam mouse system with one hand (all the movements and clicks), you must resort to hand gestures which CamSpace is not able to analyze.

As for multiple webcams, that is not possible with the current version of CamSpace from all the wiki pages I have read and videos I have seem. From each webcam, you are only able to track a maximum of 4 objects so there are limitations. If you use multiple webcams, I think you would need a quad-core processor to handle the high processing load.

437
Good article. Some comments:

I've got my copy too and it is pretty responsive. A lot more than I expected. It has several issues:

1) You must be in a well-lit enviorment.
2) The overall GUI feel is a bit buggy.

However. With that said, the Soccer game (the one that is seen in the promotional video) plays great. You can actually bounce the virtual ball and it feels very responsive and AWESOME. They need to develop some better (physics based) games and it CAN be WII killer after all.

I still waiting for my beta invite even though I signed up a long time ago. Have you tried using it as a mouse? Also, what about the similar color issue?

438
Well, it seems that CamSpace, http://www.camspace.com, is in Beta3 mode and they sent out invites to the people that signed up (I never got mine, though. Anyone got theirs?).  Here's three videos of someone trying to use CamSpace to emulate a mouse: http://www.youtube.c.../watch?v=0AYnNzr_uO4, http://www.youtube.c...&feature=related, http://www.youtube.c...&feature=related and here is a video of someone using it on Google Earth type application: http://www.youtube.c.../watch?v=9xoSS5QiyX4. Note that these videos appear to be from people who have actually gotten copies of the program and are not promotional videos.

Some of you may remember the WebCam Signature program I submitted for the DC Programming Contest that contained an experimental webcam mouse mode (http://webcamsignature.wikidot.com). From coding that program and watching these videos, I feel that I can provide some useful information for people that haven't gotten an invite yet.

From reading CamSpace's wiki and watching CamSpace demo videos, I can conclusively say that CamSpace primarily tracks colors (like WebCam Signature) to determine where to move your controls.  One piece of supporting proof is their colored wheel printouts at http://www.camspace.com/featured/.

The advantage of this method is that it is fairly simple to program and does not require any complex mathematics. You tell the CamSpace program what colors you want to track by holding up your colored object in certain positions that the program specifies. This is what allows you to use “any object” as your control to your computer. More on the “any object” part later in this posting.

The program tracks the areas of the blobs of colors to determine the z-depth.  However, the problem with this method is that it is difficult to impossible to distinguish if you are actually pulling your controller back/forwards or whether you are just tilting forwards  are an angle so that your controller has a smaller projected frontal area. Also, I’m not sure how useful the z-depth tracking will be in a real world setting because in order for it to work properly, the whole of your controlling object must be visible to your camera at all times or you will get jerky tracking. This arises from the fact that a camera has a limited field of view and as you move an object in the z-direction, you may inadvertently move out of the field of view. I will have to get the beta to test before I can judge how well the z-depth tracking works in their implementation.

They track the rotation of the blobs of colors to determine the angles. They do not appear to track the exact shape of the object because you can use objects of various shapes. Instead, they appear to track the longest axis of the colored blobs to determine the angle of orientation of your colored objects. In some videos, you can see a shorter axis that is perpendicular to the longest axis of the colored blobs. This is used to find the center of the blob. This center point appears to be what is used to calculate the position of your controller in the X-Y plane.

The program is most likely written in Microsoft Visual C++ from the screenshots I've seen, so don't hold your breath for a Linux or Mac version any time soon.  I’m deducing this from the program icons seen on http://www.camspace..../Emulation_Authoring. If you are a Microsoft Visual Studio user, you will recognize the familiar program icons in the top left of the windows. They most likely used Visual C++ to gain as much of a performance advantage as possible due to the inherently high cost of image processing in real time.

In the first three videos listed at the beginning of this post, you can see someone trying to use CamSpace to emulate a mouse. The first video shows that CamSpace can be made to work smoothly and allow you to move windows around by using a pinching motion of your fingers with colored plastic on them. However, there is a major hurdle that must be overcome before you can use a webcam as a general mouse. This major hurdle is that you must design a control scheme to signal to the computer when you want to select an object, move it, click, double-click, right-click, middle-click, scroll, and for those of you with extended mouse buttons, how to control the 4-th and 5th buttons. The implementation must allow you to move the mouse accurately while allowing you to execute the above commands. You will most likely have to use two hands to successfully emulate a standard mouse. One hand would be used for moving the mouse and the other would be used for signalling the other commands. It is difficult to do this with just one hand because as you move and shift your hand to create a different gesture, you will likely shift whatever it is on your hand that the program is tracking to position the mouse. This makes clicking on a button a frustrating affair let alone a text link.

The second video listed above shows some inherent problems of color based tracking methods. It shows that sometimes, the performance of this method can be quite slow as indicated by the less than 10 fps frame rate seen while trying to track three objects. I’m not sure whether this is due to the emulation used, lack of processing power, or a problem with the CamSpace program. Either way, if you are playing a game that already taxes your computer’s resources, you will have to upgrade to a better computer if you want decent tracking and a game frame rate. From coding WebCam Signature and playing around with other webcam tracking programs out on the web, I estimate that CamSpace will likely use around 20-30% of the processing time of a middle of the pack duo-core CPU, such as an AMD Athlon 64 X2. Ram usage should be fairly low, probably under 50 megs when running.

During the second video, you will notice that you can see the colored hand (being tracked) of the person but not the body of the person himself. At the end of the video, you can see the person come in front of the camera and his shirt (normally black) becomes white and is pixelated around the edges. This highlights the problem that the ability to track “any object” is in fact the ability to track “any object with a color that is not similar to colors seen in the background.” Similar colors will fool the program as well as shiny objects that are used for controllers. Changing light conditions or sunlight shining on your tracking object will also have adverse effects. Sunlight is bad in particular because it contains a good deal of near-infrared light that is not visible to the human eye but is picked up by many webcams. This creates noise in the colored blobs that affect the accuracy of tracking and may introduce jerky motions. Evidence of this can be seen by looking at the constantly changing pixelated edges of the colored blobs on the person’s hand in the second video.

From comments I have seen on CamSpace’s site and others, many people are calling CamSpace as a Wiimote killer and a gaming revolution. I believe these people are wrong. I do not believe you will be able to obtain tracking as accurate as you can with a Wiimote nor will it be anywhere as responsive. The Wiimote uses a specialized infrared camera coupled with dedicated hardware that allows it to outperform the vast majority of webcam/computer combinations out there. It is also much more resistant to lighting changes and is not affected by similar colors. The Wiimote just has to track two infrared LEDs that provide a much more predictable and reliable method of control than trying to emulate human vision. I also do not believe this will revolutionize gaming because there are already other virtual reality systems out there that allow you to track objects with greater accuracy than is possible with a color based system. Some of them are commercial systems with dedicated hardware, but some are open source like http://www.free-track.net/english/.

You are inherently unable to provide the accurate and fine tracking that a standard mouse can with a webcam system and current PC hardware because the vast majority of webcams have a maximum resolution of 640x480 (0.3 megapixels) whereas most monitors have a resolution that that is much greater, such as 1440x900 (1.3 megapixels) and up.  This means that the position of your mouse on the screen must be interpolated from a 0.3 megapixel image, not even considering the issue of processing power. Most likely, you will be using a resolution of 320x240 to enable your system to track at a high enough frame rate to prevent lag.

 Even if you used a camera with a resolution equal to that on your monitor, you will still not have a usable system because the processing requirements will be enormous. Think of trying to process a DVD movie frame by frame in real time and you will have an idea of the power needed to equal the resolution that can be provided by a standard mouse.

This is not to say the CamSpace is bad. In fact, it appears to be an excellent piece of software and it is about time that someone has made use of the webcam and make computer vision a useful thing. However, we must be aware of the inherent limitations of computer vision systems and not get carried away thinking that we are ready to throw away our mouse and Wiimote.

One thing that I hope CamSpace will do is release their software under an open source licence so that others can analyze the code and use it. While I was writing Webcam Signature, I did some extensive searching for example code that demonstrated computer vision in a useful manner. Something more useful than turning on a security camera. Well, the field is very sparse and most of the programs people are writing are proprietary and there is very LITTLE sharing going on. If computer vision is to advance to a useful state, we must share code so that new ideas can be readily implemented and old ones improved upon. This was the primary reason why I made Webcam Signature open source and I hope CamSpace will be open source as well.

Well, that is a long enough article for now. I’m sure there are some spelling mistakes and I’ll fix those in after a bit. I’ll write more if I have something to add.

Stay tuned for my second program that I’m submitting for the DC Programming Contest. It’s a good one.

439
Question: Can I enter more than one program into the programming contest? I just had a really good idea and got some code working for it.

440
Coding Snacks / Re: My first program.
« on: July 01, 2008, 11:50 PM »
As you can see it is still a work in progress. There is one major glitch that I don't know how to correct yet and that is if you type in anything other than a number it flips out. I will fix it as soon as I learn how. For now have fun.
I appreciate any comments on how to improve or add to the game. I hope to be able to code more usefull programs in the future.
:Thmbsup:
-alivingspirit (July 01, 2008, 04:33 PM)

You have to use something like this to catch those input exceptions.

try
{
......
// execute regular commands
}
catch (Exception ee)
{
// do something if there is an error
}

More details here: http://msdn.microsof...6dekhbbc(VS.80).aspx. I wish beginning programming classes would actually teach stuff like this so that you could make a program someone would actually use. I took two classes of University C++ programming and no one even mentioned try...catch clauses. I had to learn it myself.

441
Thank god for the extension, my its a huge load of my chest now that I have more time. Even though I finished it, it's not how I would like it to be for the release.
-hollowlife1987 (June 30, 2008, 06:51 PM)

What have you been working on?

442
New deadline? Hmm, I may be able to get my submission (Webcam Signature) to track hands/fingers by the new deadline. I'll see if it works out or not. BTW, the source code for Webcam Signature 1.3 is up on my website: http://webcamsignatu...ignature-source-code. I'll probably submit the new version that I'm working on before the new deadline.

443
For mouser, veign, and those interested, the source code for Webcam Signature 1.3 is now up on my website at http://webcamsignatu...ignature-source-code. It is open source under a GNU v3 license.

444
lol, no, I got the program working perfectly, I couldn't get it to track a pen though, but I could get it to track the usb to ps/2 converter perfectly

I'm working on a new version of Webcam Signature that uses a notably different algorithm for tracking. From my testing so far, it is able to track a color object significantly better than version 1.3 especially when the lighting changes or there is glare off the object. Right now in version 1.3, you may have to recalibrate the tracking color if you turn the light on in a dark room or the sun shines through the window and onto your pen, but that does not appear to be as frequently necessary with the new version.

However, one issue remains to be solved. I have to speed the algorithm up. One of the primary issues is that accessing bitmap pixels is a slow process even with using Unsafe bitmaps in C#. However, I may have some code that can solve this issue.

445
very cool movie :)
by the way the crashing is gone, the auto grab screen and and color works.  :up:

it's hard for me to control it well -- i think my background is a bit noisy and webcam not so good, so it's a little hard.

it's fun to try to think of other uses of this tool..
i can imagine using it to track a bug's movement over time, like a ladybug or something, put your webcam on it and switch into paint mode :)



That's good. I think the program was improperly disposing of the grabbed frame.

Try using a flashlight/led/infrared led instead of a pen if you are having trouble getting it to track and set it so that the tracking color is white to bright white.

BTW, version 1.3 also fixed the finicky edge drawing problem.  :P

Now, I just want to make the program use 10% or less of my CPU time when running instead of 30-40%.

446
General Software Discussion / Webcam Mouse Mode Coded
« on: June 26, 2008, 04:39 PM »
http://www.youtube.c.../watch?v=yUPaEnsKJYM

http://webcamsignatu...oad-webcam-signature

I've coded the Webcam Mouse Mode into Webcam Signature 1.3. You can now use your webcam to move your mouse around. Check out the video!

Also added is a larger drawing area for the signature and hopefully I fixed the unhandled exception the mouser got.

447
Problem: When a TV tuner is installed in a PC, Webcam Signature treats it as if it is a webcam (other programs do this too, like Windows Live Messenger) - would it be possible to detect and prevent this? It lags the program having it refresh a bunch of gray fuzzy noise and non-existent video every second or two.

(I have a "Happauge WinTV" TV tuner, if that is relevant at all)
-wreckedcarzz (June 26, 2008, 02:38 AM)

Are you using the TV tuner as your video input source for the program?

Right now, the program automatically loads whatever video input source is available but you can get the program to stop the input from the video source in version 1.2 by clicking on the pen size drop box in the "Pen" area of the program and selecting "Hide".

448
I've uploaded a new version of Webcam Signature (1.2) to http://webcamsignatu...oad-webcam-signature. Added is a fix to handle the case of when the "Fine Tune Tracking Color" panel is opened with no webcam available. Also added is the ability to draw on the signature area with your mouse.

449
my webcam was connected the whole time, and showing in the windows.
it's only when i press the Grab Screenshot button in the finetune dialog that the error occurs.

That is weird. Does the program work otherwise if you don't click on "Grab A Frame"?

450
For a while, I couldn't get it to work, but then I used one of those green usb to ps/2 converters that comes with usb mice, and it works 100%!

For your webcam? In the program, I'm using a DirectX wrapper to connect to the webcam. Maybe your webcam has an issue with DirectX?

Pages: prev1 ... 13 14 15 16 17 [18] 19next