Igor binary files & Image Processing (Asylum Research data)
warakurna
Splitting Binary Files
I just got some AFM data recorded on an Asylum Research AFM. The output format of these is *.ibw. A layered binary file (256x256, 4 layers) which I want to split. At the moment I just copy and paste from one table to another. Can this be done automatically?
A much better possibility would be just plotting this layerd file and switching easily from one to another layer in the plot. This is possbile on the PC controlling the AFM because it is controlled with Igor and also the imaga analysis is done with Igor. Unfortunately this is in another institute and I don't have access to the code.
If someone has time to have a look at a small dataset, it is attached.
Right now, I'm trying to do the image processing as shown below and this is awful...
Image Processing
I'm currently working on some AFM image processing using the ImageLineProfile Function. It is working nice when I use as explained in the Igor Manual, just an example:
Make/O/N=2 xPoints={21,57}, yPoints={40,40}
AppendToGraph/T yPoints vs xPoints// display the path on the image
// Calculate the profile.
ImageLineProfile xwave=xPoints, ywave=yPoints, srcwave=root:images:baboon
Display W_ImageLineProfile vs W_LineProfileX// display the profile
AppendToGraph/T yPoints vs xPoints// display the path on the image
// Calculate the profile.
ImageLineProfile xwave=xPoints, ywave=yPoints, srcwave=root:images:baboon
Display W_ImageLineProfile vs W_LineProfileX// display the profile
This code I tried modified to my image (see the attached picture with the line).
Here, it gets a bit complicated for me. I'd like to do this automatically by grabbing the cursor positions and overwrite/add it to the xwave and ywave. Then I want to plot the profile. Is this possible?
A couple of minutes ago, I also wrote a mail to Atomic Force (Asylum Research). I just asked if it would be possible to share some pice of code that they did for their AFM. Since I'm not the direct operator/user of this device, I do not think that they will do...
Thanks in advance...
Jan
I'm not familiar with Asylum support policies but I suspect that you will hear from them shortly. As for your questions:
1. "Splitting binary files": once you have loaded the data into IGOR you'd have a 3D 4 layer wave. You can extract individual layers using:
ImageTransform/P=(layer) getPlane my4LayerWave
or you could use appropriate expressions in MatrixOP, e.g.,
MatrixOP/O aa= my4LayerWave[][][layerIndex]*someScalar
2. "Image Processing": Again, I am not familiar with the tools provided by Asylum, but you can use the regular Image Processing package (Analysis Menu->Packages->Image Processing). Then from Image menu choose Image Line Profiles and then proceed to edit the profile path using the FreeHand setting.
If this does not solve your problem, feel free to contact me directly.
A.G.
WaveMetrics, Inc.
February 25, 2010 at 11:10 am - Permalink
Duplicate /R=[][][1] w3D, layer1
Duplicate /R=[][][2] w3D, layer2
>A much better possibility would be just plotting this layerd file and switching easily from one to another layer in the plot.
You can also do this using the ModifyImage plane keyword:
ModifyImage w3D, plane=1
ModifyImage w3D, plane=2
You won't see any change in the graph in my simple example because of the nature of the data.
February 25, 2010 at 06:53 pm - Permalink
Future work on this problem will be easier...
Surprisingly, Asylum Research gave me the installer of the MFP3D application which runs in Igor. When you install it, it will copy a bunch of procedure files etc. in the Igor directory. Starting Igor and opening the *.ibw files that I got at the AFM works fine.
Now, the only problem is that these files are loaded at Igor's startup and I have to find how to activate/deactivate the MFP3D files loading. Or again a better method would be two Igor installations, one for the AFM stuff and the other for my common Igor work...
February 25, 2010 at 11:29 pm - Permalink
Apparently they install procedure files into the Igor Procedures folder. Any .ipf files there are loaded automatically when Igor starts up.
If you want to control the loading of these files, you can:
1) move those files to the User Procedures folder, and then when you want to use them put
#include "filename" // without the .ipf extension
into your main Procedure window.
2) if there are a lot of these files, put #include statements for each one as above into a procedure file (Windows->New->Procedure, the File->Save Procedure As), then save that procedure file in User Procedures. Now you only have to put one #include statement in your main Procedure window to load the whole lot.
John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
February 26, 2010 at 02:35 pm - Permalink
If you don't mind dealing with Asylum Research Support directly, we can continue the conversation there. I don't know exactly what sort of image processing you want to do, but the software you have already downloaded from us will do many things that are specifically useful for extracting data from AFM images.
We can also tell you how to install our software template as a copy so you have a choice of opening igor as you are used to it, or any version of our AFM add ons.
I also have a pretty good (but officially unreleased) draft of a manual which covers most of our AFM image processing routines.
Please contact me (maarten@rasy.com) if you are interested.
Maarten.
March 1, 2010 at 05:09 am - Permalink