More information will be posted about how to use ARgyle later but here is a starting point.
The undocumented function argl_bindmesh("[destination window name]","source window name") is the key to overlaying one channel on top of another. The idea is to take the color data from one data channel and use it to replace the color information on another image. As you saw, this is great at correlating the information from two different images. The important point here is that the two images need to have the same number of pixels in each dimension otherwise the binding operation will not work. As I mentioned, we are adding the feature so that images of different resolutions can be overlaid and one of the images can be slide around on the surface of the destination data.
Here is an example:
- Create one ARgyle window for one channel (height for instance) that you will use as your destination for the overlay.
- Next create a second ARgyle window with the data that you want to overlay on the other window.
- As mentioned, I like to set the clip mode to none and adjust the aspect ratio to 0 for the source window since I want to optimize the dynamic range of the color table.
- Now just run the binding function using the names of the windows for destination and source and you should see the image from the source overlay on the destination.
Hint: The last active ARgyle window is the one controlled by the 3D panel so you may need to click between the windows to adjust the appropriate settings. Also, if you leave the first parameter of argl_bindmesh as an empty string, it will direct the operation to the last active ARgyle window (i.e. argl_bindmesh("","[window source name]") ). If you run argl_bindmesh("",""), on the last active window that has the bound mesh, it will clear the binding operation.
Just type argl_writevalue("[dest window]", "anaglyph", 1) to enable stereoscopic mode using the anaglyph technique. Its best to set the color table to gray and background color to black since colors distract from the filtering operation. Eventually I'll add color support where primary colors that interfere with the filter operation will be filtered out.
If you just have one ARgyle window up, just type argl_writevalue("","anaglyph",1)
To control the virtual eye separation, hold down the Shift key and drag the right mouse button up/down. This controls the depth of field. To control the focal plane, hold down Cntrl and drag the right mouse button up/down. This will make the image appear to either float out of the screen or be pushed back into it.
To return back to normal mode, type argl_writevalue("[dest window]", "anaglyph", 0) ( or argl_writevalue("", "anaglyph", 0) if current ARgyle is in foreground).
http://www.virtualdub.org/ - VirtualDub
VirtualDub is a good freeware program to use as an alternative to the video capture used in Igor. Especially if you want to make movies or choose different capture cards. Just make sure that you do not run the video capture inside of Igor before running VirtualDub otherwise the video capture operation is locked by Igor and you'll have to restart Igor.
Attached is a zip file that contains some IPFs that you can use in any experiment as well as a readme file that explains the idea. I've been wanting to add a panel with buttons and controls to help the movie process but just haven't done it yet. If the attachment doesn't come through you can download from our web site with the following link.
Make sure the jpeg has the same pixel dimensions as the image that you want to overlay it on. While in Igor, go to Data/Load Waves/Load Image and open the jpeg into a wave. Next run argl_makewin("", "", name of wave, 0) to load that jpeg into an ARgyle window. Now just proceed with the binding operations described in #1.
Remember that you can copy to the clipboard by hitting Cntrl + C on an active ARgyle window or export it to a file from Edit/Export File.
If you would like to make a high resolution export, do the following:
In this case you need to use \\ to separate directory names. There are some bugs with this function if you try to write to a network drive and other misc memory issues so it will be fixed soon and probably integrated into the panel.