Workshop: Automation of image analysis tasks with ImageJ and MRI Cell Image Analyzer
|
|
- Rafe Horton
- 8 years ago
- Views:
Transcription
1 Workshop: Automation of image analysis tasks with ImageJ and MRI Cell Image Analyzer Montpellier RIO Imaging Volker Baecker /26
2 Table of Contents 1. Introduction The ImageJ macro language Hello World Integrating macros into the ImageJ interface Startup macros Macros as plugins Macros as menu items Calling macros from action bars Running macros from toolsets Writing an image type converter batch Using the ImageJ macro language Macro recorder and Multiple Image Processor Programming the loop Using MRI Visual Scripting Measuring intensities inside and outside a masked region Getting the basic steps from the macro recorder Resetting the results table Adding the loop and loading images belonging together Closing images no longer needed and freeing memory Saving the results Interactive visual scripts Measuring perpendicular segments along a line Writing a 2d region growing segmentation tool macro...22 volker.baecker@mri.cnrs.fr 2/26
3 1. Introduction In this workshop you will learn how to automate image analysis tasks using ImageJ. There are three mechanisms that allow to create automated procedures in ImageJ. Maybe the most simple is the MRI Visual Scripting plugin that allows to create applications from existing operations using drag and drop. The second one is the ImageJ macro language. The third possibilty is to write and integrate custom plugins. In this workshop we will only talk about the first two possibilties, the visual scripting and the ImageJ macro language. Once a custom procedure has been created it can be integrated into ImageJ in different ways. It can appear as a menu item, or as a button and a keyboard shortcut can be associated with it. 1.1 The ImageJ macro language Hello World A short introduction to the ImageJ macro language can be found on and a list of functions available in the macro language on As dictated by tradition, the first thing we will do is to write a macro that prints out «Hello World!». Use Plugins>New to create a new macro. In the dialog enter the name «Hello World» and select the type macro. Illustration 1: Creating a new macro. In the text editor enter command print(«hello World»);. You can run the macro using Macros>Run Macro or by pressing ctrl+r. Create a folder workshop-macros and save the macro using File>Save As. You can use Plugins>Macros>Run to run any saved macro. Or you can use Plugins>Macros>Install to put the macro into the Macros menu during one session (until you close ImageJ). Open the Hello World macro again, using Plugins>Edit. We will now define a keyboard shortcut to run the macro. There can be multiple macros in the same textfile. In this case each macro starts with the keyword macro, followed by the name of the macro in quotation marks. After the name but still within the quotation marks you can define a keyboard shortcut in brackets, for example [f11]. The body of the macro must then be surrounded with the brackets { and. Save the modified macro and reinstall it. For the keyboard shortcut to work, an ImageJ window must have the focus. Click on the ImageJ launcher window and press f11. volker.baecker@mri.cnrs.fr 3/26
4 macro "Hello World [f11]" { print("hello World!"); Text 1: The hello world macro. Let's add a second hello world macro that draws the text into an image. Edit the hello world file as shown in Text 2. macro "Hello World [f11]" { print("hello World!"); macro "Hello World 2 [f12]" { newimage("welcome", "8-bit White", 800, 150, 1); setfont("serif", 100, "antialiased"); setcolor(255,255,0); drawstring("hello world!", 150, 100); Save the new macro, install it and run it. Text 2: A graphical hello world has been added. 1.2 Integrating macros into the ImageJ interface Startup macros Macros defined in the file StartupMacros.txt in the macros folder will be automatically installed when ImageJ is started. They will appear in the Plugins>Macros menu and the keyboard shortcuts will be working as well. Copy the two Hello World macros into the StartupMacros.txt file. If StartupMacros.txt contains a macro named AutoRun, this macro will be automatically executed each time ImageJ is started. macro 'AutoRun' { run("hello World 2"); Text 3: Automatically running a command when ImageJ starts up Macros as plugins One way to add our macro command permanently to ImageJ is to add it as a plugin. Files that are in the plugin folder or in one of its subfolders and that contain an underscore in their name are regarded as plugins and appear in the Plugins menu. For this usage each macro has to be in its own file and the shortcut keys defined within the macro are not taken into account. However a shortcut for the plugin can be defined afterwards. Create a subfolder mri-workshop in the plugins folder, create a file Hello_World.txt containing the first macro and a file Hello_World_2.txt containing the second macro. After you restarted ImageJ you find a menu entry Plugins>mri-workshop containing volker.baecker@mri.cnrs.fr 4/26
5 the two macros. You can define the keyboard shortcuts using Plugins>Shortcuts>Create Shortcut. Select the Hello World plugin from the list and enter f11 as shortcut key. This will create an entry in the file IJ_Prefs.txt in the ImageJ base-folder and the shortcuts will remain when you restart ImageJ Macros as menu items Using the file IJProps.txt in the ij.jar in the ImageJ base-folder, you can change and add menu items. You can modify the context menu that opens when you right-click on an image and almost all submenus, like for example Process>Filters. Make a copy of IJProps.txt with a different name. If after a modification of IJProps ImageJ doesn't come up anymore you rename the copy back to IJProps.txt. Open the file IJProps.txt and try to install the Hello World 2 macro in the File>New submenu. Be careful to give it a different name from the name it has in the Plugins>MRI-workshop menu, otherwise you will create an endless loop when you call it from its new place. The command you need, to call the macro is ij.plugin.hotkeys("hello World 2"). The command names in the ImageJ menus must be unique, since they can directly be called from a macro using the run command. If you want to place the same command in different menus, you can add spaces behind the name for all but the first menu. # Plugins installed in the File/New submenu new01="image...[n]",ij.plugin.commands("new") new02="text Window[N]",ij.plugin.NewPlugin("text") new03="internal Clipboard",ij.plugin.Clipboard("show") new04="system Clipboard[V]",ij.plugin.Clipboard("showsys") new05=new06="hello World 2 ",ij.plugin.hotkeys("hello World 2") Text 4: Adding a command that calls a macro to the File>New menu. volker.baecker@mri.cnrs.fr 5/26
6 Illustration 2: The macro command appears in the File>New menu Calling macros from action bars The Action Bar plugin from Jerome Mutterer ( allows to create toolbars with custom buttons for which the commands can be configured. Start it from Plugins>Action Bar>Action Bar. Create an action bar with one row and two buttons. Use Hello_ as name of the action bar. Illustration 3: The Action Bar plugin. After you pressed OK the macro editor will be opened and you can edit the action bar. label = the tooltip text that will be displayed when the mouse pointer is over the button volker.baecker@mri.cnrs.fr 6/26
7 Automation of image analysis tasks with ImageJ and MRI Cell Image Analyzer icon = the icon image for the button action = one of the following possibilities: run_macro_file (run a macro file from the macros folder or one of its subfolders) install_macro (install a macro file from the macros folder or one of its subfolders) run_macro_string (a macro command string) arg = the name of the macro file or the macro command string After you made changes save the macro and run it using Macros>Run Macro. The macro will be saved to plugins\actionbar. After you restarted ImageJ it will appear in the corresponding menu. Each action bar has a subfolder in the folder plugins\actionbar\icons. Put the icons you want to use into this folder. // Action Bar description file :Hello_ run("action Bar","/plugins/ActionBar/Hello_.txt"); exit(); <line> <button> 1 line 1 label=hello World icon=hello_/globe.png action=run_macro_string arg=run("hello World"); <button> 2 line 1 label=hello World 2 icon=hello_/globe.png action=run_macro_string arg=run("hello World 2") </line> // end of file Text 5: The definition of the Hello action bar. Illustration 4: The resulting action bar. Illustration 5: Another action bar Running macros from toolsets The rightmost button in the ImageJ launcher window switches between different sets of tools that can be activated or run using the buttons after the color picker tool. You can create your own toolsets. Create a file «Hello World.txt» in the folder macros/toolsets. A toolset macro must either contain Tool or Action Tool in its name. In the first case, if you click the button the current tool changes and active tool is called each time the user clicks into an image. In the second case the macro is called directly when the button is pressed. The name of the macro must be followed by a volker.baecker@mri.cnrs.fr 7/26
8 character and a definition of the icon image to be displayed on the button. You can find a description of the syntax for defining the icon images here: You can create the icon from an image using the «Image to tool icon» macro from: The image must have a size of 16x16 pixel and it must not contain more than 16 colors. Download the macro and put it into plugins>utilities, then restart ImageJ. Load the globe.png image and convert it to an 8-bit color image with 16 colors, then start the plugin. macro "Unused Tool - C037" { macro "Hello World Action Tool - C68bD6bD6cD7bD8aD8bD9aD9bDa1C347D00D04D06D07D10D11D14D20D 21D2dD30D31D40D41D50D60D70CcddD25D29D2aD35D43D44D49D4cD52 D76D81D94Da3DabDbaDc4Dc6Dc8C712D3eDaeDcdDdbDdcDe9DeaCbbcD 26D28D33D42D5bD62D78D83D85D91D92D93D95DacDb5DbbC569D09D2c D51D6eD7eD80D8eD90Da0Db1DbdDc1Dc2DccDd2Dd3De4De5De6De7De8 CeeeD34D45D4bD53D54D55D5aD64D65D71D98Da4Da9DaaDb3Db6Db8Db 9Dc5C9bcD17D18D24D2bD3cD59D5dD69D9dDa5Db2Dc3Dc7DcaDd5Dd9C 569D05D08D12D13D15D1cD22D23D32D4eD5eD7cD8cD9cD9eCdefD36D3 bd46d47d56d57d61d63d66d67d73d74d75da2ca00d8fd9fdafdbedbfd cedcfdddddeddfdebdecdeedefdf5df6df7df8df9dfadfbdffcbcdd27 D37D38D48D58D68D6dD72D77D7dD82D84D8dDd6Dd7Dd8C78aD0aD16D1 ad1bd3dd4dd5cdaddc9dd4ddacfffd39d3ad4ad86d87d88d96d97da6d a7da8db4db7c8acd19d6ad79d7ad89d99dbcdcb" { print("hello World!"); macro "Hello World 2 Action Tool - C68bD6bD6cD7bD8aD8bD9aD9bDa1C347D00D04D06D07D10D11D14D20D 21D2dD30D31D40D41D50D60D70CcddD25D29D2aD35D43D44D49D4cD52 D76D81D94Da3DabDbaDc4Dc6Dc8C712D3eDaeDcdDdbDdcDe9DeaCbbcD 26D28D33D42D5bD62D78D83D85D91D92D93D95DacDb5DbbC569D09D2c D51D6eD7eD80D8eD90Da0Db1DbdDc1Dc2DccDd2Dd3De4De5De6De7De8 CeeeD34D45D4bD53D54D55D5aD64D65D71D98Da4Da9DaaDb3Db6Db8Db 9Dc5C9bcD17D18D24D2bD3cD59D5dD69D9dDa5Db2Dc3Dc7DcaDd5Dd9C 569D05D08D12D13D15D1cD22D23D32D4eD5eD7cD8cD9cD9eCdefD36D3 bd46d47d56d57d61d63d66d67d73d74d75da2ca00d8fd9fdafdbedbfd cedcfdddddeddfdebdecdeedefdf5df6df7df8df9dfadfbdffcbcdd27 D37D38D48D58D68D6dD72D77D7dD82D84D8dDd6Dd7Dd8C78aD0aD16D1 ad1bd3dd4dd5cdaddc9dd4ddacfffd39d3ad4ad86d87d88d96d97da6d a7da8db4db7c8acd19d6ad79d7ad89d99dbcdcb" { newimage("welcome", "8-bit White", 800, 150, 1); setfont("serif", 100, "antialiased"); setcolor(255,255,0); drawstring("hello world!", 150, 100); Text 6: Defining a toolset for the ImageJ toolbar. Restart ImageJ and click on the >> button. You find a new menu item «Hello World». Select it and two buttons with the globe icon appear on the toolbar. volker.baecker@mri.cnrs.fr 8/26
9 Illustration 6: The Hello World toolset appears in the ImageJ toolbar. 2. Writing an image type converter batch Our first task will be to write an automatic image type converter. The converter shall take a folder of 16-bit greyscale or RGB-color images as input and convert each image to an 8-bit greyscale image. 2.1 Using the ImageJ macro language Macro recorder and Multiple Image Processor We first need to know the command to convert an image to 8bit. The macro recorder writes all actions executed by ImageJ to a text file that you can install and run as a macro afterwards. Start the recording from Plugins>Macros>Record. Open an rgb or 16-bit greyscale image and convert it to 8- bit. In the recorder window you'll find the command run("8-bit");. Using the run command you can call all ImageJ menu item commands from a macro. Remove everything except for the convertion command from the recorder window. Enter the name of the macro: «Convert to 8-bit» and press the create button. Revert the opened image (ctrl+r) and run the macro from macros>run macro. If everything works as expected save the macro into the macro folder. Illustration 7: The convert to 8-bit macro. You can now use the Multiple Image Processor plugin from to apply the macro to all images in a folder. Run the plugin from plugins>utilities>multiple Image Processor. volker.baecker@mri.cnrs.fr 9/26
10 Illustration 8: The Multiple Image Processor plugin. Choose plant (manual) as input folder and work/out as output folder. Select the macro file and press ok. Each image in the folder will be opened, displayed and converted and the result will be written to the output folder. The macro can of course contain any sequence of commands Programming the loop We might need more control of the processing as is provided by the «Multiple Image Processor». We're going to write the processing loop for all images in a folder ourselves now. inputfolder = getdirectory("8-bit converter - Choose the input folder!"); outputfolder = getdirectory("8-bit converter - Choose the output folder!"); images = getfilelist(inputfolder); for (i=0; i<images.length; i++) { inputpath = inputfolder + images[i]; open(inputpath); run("8-bit"); outputpath = outputfolder + images[i]; save(outputpath); close(); Text 7: A first version of the convert to 8 bit macro. We first need to get the input and output folders from the user. This can be done with the command getdirectory(<string>). We will store the answers in the variables inputfolder and outputfolder. Now we need a list of the files in the input folder. The command getfilelist(<dir>) can be used to get the list. The for loop runs from 0 to the length of the list of images 1. In each iteration the variable i is increased by one. The operator +, if applied to strings, concatenates two strings. In this way the absolute path of the current input image is constructed from the input folder and the filename. volker.baecker@mri.cnrs.fr 10/26
11 The open command opens loads the image. Then the convertion is run. The absolute output path is calculated in a similar way as the input path and the converted image is saved. Save and run the macro. It works but it has some problems: each opened image is displayed, which is useless in a batch application if there is a file in the folder that is not an image the macro will stop with an error we can't see the progress in the end we don't know what has been done by the macro The first problem can be solved with the command setbatchmode(<boolean>). Call it with true before the loop to activate the batch mode and with false after the loop to deactivate the batch mode. To solve the second problem we will check if the file extension corresponds to an image file type. In order not to mess up our code we will write a function that checks the file extension and call it from our main loop. function isimage(filename) { extensions = newarray("tif", "tiff", "jpg", "bmp"); result = false; for (i=0; i<extensions.length; i++) { if (endswith(tolowercase(filename), "." + extensions[i])) result = true; return result; Text 8: The isimage function answers true if the file has tif, tiff, jpg or bmp as extension. To solve the third problem we can use the integrated showprogress(<current>,<total>) function. However we need to count the number of images among the files in the folder first. To do this we write a second function. function countimages(array) { result = 0; for (i=0; i<array.length; i++) { if (isimage(array[i])) result++; return result; Text 9: A function to count the number of images in a list of filenames. To solve the last problem we will print out the name of each written image to a log file that will be opened after the processing of all images finished. volker.baecker@mri.cnrs.fr 11/26
12 inputfolder = getdirectory("8-bit converter - Choose the input folder!"); outputfolder = getdirectory("8-bit converter - Choose the output folder!"); setbatchmode(true); images = getfilelist(inputfolder); imagecount = countimages(images); notice = "converted: \n"; for (i=0; i<images.length; i++) { showprogress(i, imagecount); inputpath = inputfolder + images[i]; if (isimage(inputpath)) { open(inputpath); run("8-bit"); outputpath = outputfolder + images[i]; save(outputpath); close(); notice = notice + outputpath + "\n"; setbatchmode(false); print(notice); exit(); Text 10: The modified macro using the functions defined above. 2.2 Using MRI Visual Scripting We will now create the same convert to 8-bit application using MRI Visual Scripting. Select the MRI Tools toolset and click on the Visual Scripting button. Illustration 9: The MRI Visual Scripting launcher. To create a new application run Applications>new... and enter the name of the new application. A tile representation and a box representation of the application are opened. For the moment the box is empty. Open the list of all available operations from Operations>all. Scroll down to the convert image type operation and drag it from the box. Click on the questionmark to get a help text for the operation. Drop it into the application box. Click on the O-button to see the options of the operation. The only option is the output type. Add the open image operation before the convert image operation. Click on the P-button of the convert image type operation to connect the input of the operation wilth the output of the open image operation. Add a show image operation at the end of the application and connect it, then run the application on an RGB image. To run an application click on the central button with the applications's name in the tile-representation. The application opens a file browser and asks the user for an image. It opens the image, converts it to 8-bit and displays it. Now we need to add a loop and instead of showing the result image we need to save it to disk. volker.baecker@mri.cnrs.fr 12/26
13 To create the loop add either the operation «for each image do» or the operation «for each image in list do» to the beginning of the application and the operation foreach image end to the end of the application. Connect the end operation with the do operation. Connect the «open image» operation with the «do» operation. The «open» operation will then get the filename from the do operation in each iteration of the loop. Both do operations let the user select a number of files by either selecting all the files or by selecting a folder. If a folder is selected all images in the folder and in all subfolders will be used. The second do operation gives the user the possibility to eliminate files from the list. This way he can add in a root folder and then remove the images that should not be treated. Run the application and select 3 or 4 RGB images. Now remove the «show image» operation from the application by clicking on the white cross in the upper right corner. Replace it with the «save image» operation and connect its input image parameter to the «convert image» operation. Connect its path parameter either to the do operation or to the «open image» operation. Open the options of the «save image» operation. We need to tell the operation where to save the result. You can either use the browse button to select an output folder or you put a name in the output folder field and select «create in source folder». Use for example «converted» as output folder and select «create in source folder». We should now save the application. Right click in the top area of the application tile and select «save as» from the context menu. Create a new folder workshop in the _applications folder and save the application there. There will now be a menu item «workshop» containing the «convert to 8-bit» application in the applications>applications menu. Illustration 10: The convert to 8-bit application as a visual script. 3. Measuring intensities inside and outside a masked region We will now create a macro that reads in two images. One image of nuclei and one image of the cytoplasm. The macro will create a mask from the nuclei, subtract the background in the cytoplasm image and measure the intensities inside and outside the nuclei in the cytoplasm image. volker.baecker@mri.cnrs.fr 13/26
14 You will learn how to: Automation of image analysis tasks with ImageJ and MRI Cell Image Analyzer open multiple images belonging together run visual scripting operations from a macro use the particle analyzer from a macro add entries to a results table save measurement result in a way that they can be opened with a spreadsheet program afterwards 3.1 Getting the basic steps from the macro recorder We will execute the basic steps needed to accomplish our application and record them with the macro recorder. You can fill in commands manually in the recorder window. You can create a macro from the recorder window in between and run it to test your changes. Start the macro recorder and open the image «A4 dapi 1.tif». Open the threshold adjuster and create a mask of the nuclei. For the script keep only the setautothreshold() and «convert to mask» commands. Run «fill holes» to get rid of the holes in the mask. Then run the «particle analyzer» to exclude the small object that is not a nucleus. Don't display the results, we are only interested in the new mask in which objects too small are excluded. Create a selection from the mask. Open the image «A4 Rhod 1.tif». Run the «find and subtract background» operation. Remark that this generates a «call» command in the macro recorder. The call command can be used to call any static public java method. call("operations.operation.run", "find and subtract background", "1; 1; 2; 0.05"); Text 11: Visual scripting operations are run by the call command. Transfer the selection to that image. Set the measurements, so that they include the integrated density and the area and measure the selection. Invert the selection an measure again. Now we did all the steps to get the informations we wanted. 3.2 Resetting the results table Since later on we will build a loop to treat multiple images around our code, we should put the «set measurements» command to the very top of the macro, so that it will only be run once before the loop is entered. When the macro is run it will add measurements to a opened results table. So we should clear the results table before writing measurements into it. To clear a results table manually use Edit>Clear Results in the window of the results table. run("set Measurements...", "area mean min integrated redirect=none decimal=3"); run("clear Results"); Text 12: Setting the measurements and clearing the results table. volker.baecker@mri.cnrs.fr 14/26
15 3.3 Adding the loop and loading images belonging together The next thing we are going to change is to add the loop to treat all images in a folder. Since now we need two images, the nuclei and the cytoplasm, we will automatically read in the cytoplasm image for each nuclei image. We define two variables containing the part of the filename that identifies an image as nuclei or cytoplasm image. Then we ask the user for the source folder. We get the file list of all files in the source folder. Using the keyword var we define the filelist as a global variable. This way it is directly accessible everywhere and we don't need to pass it as an argument to a function. Write a function that counts the number of nuclei images and a function that answers an array of all images containing a text in the name. Use the second function to get a list of all nuclei images. nucleiname = "dapi"; cytoplasmname = "Rhod"; inputfolder = getdirectory("8-bit converter - Choose the input folder!"); var allimages; allimages = getfilelist(inputfolder); var numberofimages = 0; numberofimages = countnucleiimages(); nucleiimages = getimagescontaining(nucleiname); Text 13: Getting a list of the nuclei images. function countnucleiimages() { count = 0; for(i=0; i<allimages.length; i++) { if (indexof(allimages[i], nucleiname)!=-1 ) count++; return count; Text 14: Counting the nuclei images. function getimagescontaining(text) { result = newarray(numberofimages); index = 0; for (i=0; i<allimages.length; i++) { if (indexof(allimages[i], text)!= -1) { result[index] = allimages[i]; index++; return result; Text 15: Getting all filenames containing a text from a list of filenames. Now write a loop around the processing part of the macro that opens all nuclei images and the corresponding cytoplasm images. Use the replace function to create the cytoplasm image filename from the nuclei image filename. volker.baecker@mri.cnrs.fr 15/26
16 for (i=0; i<nucleiimages.length;i++) { inputpath = inputfolder + nucleiimages[i]; open(inputpath); setautothreshold(); run("convert to Mask"); run("fill Holes"); run("analyze Particles...", "size=800-infinity circularity= show=masks"); run("create Selection"); open(inputfolder + replace(nucleiimages[i], nucleiname, cytoplasmname)); call("operations.operation.run", "find and subtract background", "1; 1; 2; 0.05"); run("restore Selection"); run("measure"); run("make Inverse"); run("measure"); Text 16: The main processing loop. 3.4 Closing images no longer needed and freeing memory To save memory we should close image no longer needed as soon as possible. ImageJ always works on the active image. To apply a command to another image we can get the ID of the currently active image with the command getimageid(). The command selectimage(id) makes the image with the given id the active image. Use call("java.lang.system.gc"); to initiate a garbage collection that frees memory no longer used. This call should be the first command in the loop. 3.5 Saving the results To save the results table we first ask the user for the output folder in the beginning of the macro. Then when the measurements have been made the results table can be selected with selectwindow("results");. The results can be saved as a text file using saveas("measurements", "" + outputfolder + "results.txt");. The content will be tab separated and can be loaded into a spreadsheet program. selectwindow("results"); saveas("measurements", "" + outputfolder + "results.txt"); Text 17: Saving the results table. Instead of saving the results table we can write a custom report. Let us write a function that writes a report containing: the name of the image the total intensity within the nuclei the total intensity within the cytoplasm the ratio of the two intensities volker.baecker@mri.cnrs.fr 16/26
17 Use the File.open(<filename>) function to create a new text file. You can write into the file using print(<file>, <text>). Separate columns with a tabulator by using «\t» and rows by a newline using «\n». function reportresults(filename) { reportfile = File.open(filename); headerline = "filename\tinside intensity\toutside intensity\tratio\n"; print(reportfile, headerline); for (i=0; i<nucleiimages.length; i++) { line = nucleiimages[i] + "\t"; int1 = getresult("intden", i+0); int2 = getresult("intden", i+1); line = line + int1 + "\t"; line = line + int2 + "\t"; line = line + (int2 / int1); line = line + "\n"; print(reportfile, line); File.close(reportFile); Text 18: A function that writes a custom report. 4. Interactive visual scripts Let us see how to put some interactivity into a visual script. We want to open a list of images one after the other. Let the user make a rectangular selection. Threshold the region within the selection and set find all objects in this region. The objects should be marked with a point selection. Then the user should have the possibility to correct the point selection and to accept or reject the result. volker.baecker@mri.cnrs.fr 17/26
18 Illustration 11: An interactive application. You can use «show results table» instead of «report measurements» if you want to see the result directly instead of writing it to a file. 5. Measuring perpendicular segments along a line Let the user make a line selection and enter a distance d and a length l. The macro shall create line selections in the distance d of length l along the firsth line selection and measure the intensities of these line selections. You will learn how to get user input for a macro create selections (rois) from a macro volker.baecker@mri.cnrs.fr 18/26
19 We will first do the work and then care about the user input. In a first version we just use variables to define the distance and length. First we have to make sure that the image has a line selection and display an error message if it has none. distance = 200; radius = 50; getline(x1, y1, x2, y2, linewidth); if (x1 == -1) { exit("this macro needs a line selection"); Text 19: If there is no line selection the macro quits and displays an error message. We will calculate a perpendicular line segment and move it along the line selection. We define the four coordinates of the line segment as global variables. Since we are working in radians when calculating angles we define the constant pi as a global variable as well. We can create a perpendicular line segment in the start point of the line selection in the following way: Create a horizontal line segment of the desired size with its middle point in 0,0. Calculate the angle alpha of the line selection with the x axis. The angle is the atan of the gradient. And the gradient is (y2-y1) / (x2-x1). Turn the new line segment around 0,0 by 90 + alpha. move the middle point of the line segment to the start point of the line selection. We implement the described algorithm in a function called newperpendicularlineseg that takes the start and end point of the line selection and the radius of the new segment as input parameters. Call the new function and try it by drawing the line segment into the image. Use drawline to draw the segment and updatedisplay to make the change visible. volker.baecker@mri.cnrs.fr 19/26
20 var segxs; var segys; var segxe; var segye; var pi = ; newperpendicularlineseg(x1, y1, x2, y2, radius); drawline(segxs,segys, segxe, segye); updatedisplay() ; exit(); function newperpendicularlineseg(xs, ys, xe, ye, radius) { // create segment with middle point in 0,0, horizontal to x-axis segxs = - radius; segys = 0; segxe = radius; segye = 0; // calculate angle alpha of line selection m = (ye-ys) / (xe-xs); alpha = atan(m); // make new line segment perpendicular to line selection angle = alpha + (pi/2); segxsnew = cos(angle) * segxs - sin(angle) * segys; segysnew = sin(angle) * segxs + cos(angle) * segys; segxenew = cos(angle) * segxe - sin(angle) * segye; segyenew = sin(angle) * segxe + cos(angle) * segye; // move new line segment to start point of line selection segxs = segxsnew + xs; segys = segysnew + ys; segxe = segxenew + xs; segye = segyenew + ys; Text 20: Creating a line segment perpendicular to the line selection. Now we are going to move the line segment along the line selection in steps of the given distance until we get behind the end of the line selection. We will write a function that moves the segment by a given distance along the line selection. Then we will create a loop that runs while the segment and the line selection intersect. volker.baecker@mri.cnrs.fr 20/26
21 function movelineseg(x1, y1, x2, y2, distance) { dx = x2 x1; dy = y2 y1; n = sqrt((dx*dx) + (dy*dy)); xinc = (dx / n) * distance; yinc = (dy / n) * distance; segxs = segxs + xinc; segys = segys + yinc; segxe = segxe + xinc; segye = segye + yinc; Text 21: Move the line segment along the line selection by distance. function intersects(x1, y1, x2, y2) { result = false; den = (segye-segys)*(x2-x1) (segxe-segxs)*(y2-y1); ua = ((segxe-segxs)*(y1-segys) - (segye-segys)*(x1-segxe)) / den; ub = ((x2-x1)*(y1-segys)-(y2-y1)*(x1-segxs)) / den; if (ua>=-1 && ub>-1 && ua<=1 && ub<=1) result = true; return result; Text 22: Test if the segment intersects the line selection. newperpendicularlineseg(x1, y1, x2, y2, radius); while(intersects(x1, y1, x2, y2)) { drawline(segxs,segys, segxe, segye); updatedisplay() ; movelineseg(x1, y1, x2, y2, distance); exit(); Text 23: The main loop, drawing line sgments along the line selection. Before we replace the drawing with creating a selection and measuring it we create a dialog that lets the user enter the distance between the line segments and the radius of the line. Dialog.create("measure perpendicular line segments"); Dialog.addNumber("distance: ", 100); Dialog.addNumber("radius: ", 50); Dialog.show(); distance = Dialog.getNumber(); radius = Dialog.getNumber(); Text 24: A dialog to read in distance and radius. To replace the drawing with the ceation of a selection use makeline. Then instead of measuring directly we add each selection to the roi manager. The user can then decide to measure them, to draw them, to save them and so on. This is done with the command roimanager(«add»);. volker.baecker@mri.cnrs.fr 21/26
22 newperpendicularlineseg(x1, y1, x2, y2, radius); while(intersects(x1, y1, x2, y2)) { makeline(segxs,segys, segxe, segye); roimanager("add"); updatedisplay(); movelineseg(x1, y1, x2, y2, distance); exit(); Text 25: Creating the selections and adding them to the roi manager. 6. Writing a 2d region growing segmentation tool macro We want to create a tool that lets the user click on a point in the image and creates a selection around this point by iteratively adding points for which the intensity doesn't differ more than a threshold value from the current average intensity in the already selected region. We will create the macro as a tool macro. The threshold delta value can be set by the user as an option of the macro. We will use a data structure called a queue to manage the points for which the neighbors have still to be checked. A queue is a structure where entries are consumed from one side while new entries are added at the other side. We will mark the points added to the selection and the points already rejected in a temporary image that we call mask. We count the current iteration of the algorithm. We want use it, however a more sophisticated region growing could change the threshold delta as a function of the iteration. We declare the global variables to keep the described data. var currentregionsize = 0; var currentregionintden = 0; var threshold = 10; var queue; var mask; var inputimage; var iteration = 0; Text 26: The global variables for the region grow macro. Since the variables will keep their values after the macro ran, we have to initialize them at the beginning. In the same time we remove an existing selection from the image. function initialize() { run("select None"); currentregionsize = 0; currentregionintden = 0; iteration = 0; Text 27: Initailizing the global variables. Remark that we do not initialize the threshold in the initialize method. The threshold will per volker.baecker@mri.cnrs.fr 22/26
23 default have the value it has been initialized with in the beginning and the user will be able to change it by double clicking the tool icon. To achive this we have to add a macro with the same name as our tool but with the word Options added. macro "Region Growing Tool Options" { threshold = getnumber("threshold delta:", threshold); Text 28: This macro allows the user to set the threshold by double clicking the tool icon. In the region growing tool we first call the initialize method. Then we get the current image and the current cursor location, i.e. the point on which the user clicked. We switch to batch mode and create the mask that will keep track of the points already visited. Since there are no dynamic data structures available in the scripting language we will model the queue as a string. We initialize the queue with the point the user clicked on and call the function growregion. macro "Region Growing Tool - C0a0L18f8L818f" { initialize(); inputimage = getimageid(); getcursorloc(x, y, z, flags); setbatchmode(true); newimage("mask", "8-bit", getwidth(), getheight(), nslices); mask = getimageid(); selectimage(inputimage); queue = "" + x + "," + y + ";"; growregion(); Text 29: First part of the region growing macro. Grow region will run as long as there are points in the queue left. If a point is in the queue his neighbors still have to be examined. To give a sign of life while the macro is running we write the current lengths of the queue to the status bar of the ImageJ launcher window. Using the split function, we get the first point as an array of the x and y coordinates from the queue. Using further string functions the first point is removed from the queue in the function removefirst(). We add the point to the result region. To do so we mark the pixel with the value 50 in the mask. We increment the region size and update the current average. We get the intensity of the point with the function getpixel(<x>,<y>);. Then we call the function testandaddneighbors for each of the 4-connected neighbors of the pixel. volker.baecker@mri.cnrs.fr 23/26
24 function growregion() { while(lengthof(queue)!=0) { showstatus("queue: " + lengthof(queue)); points = split(queue, ";"); point = split(points[0], ","); removefirst(); addtoselection(point, 50); currentregionsize++; currentregionintden = currentregionintden + getpixel(parseint(point[0]),parseint(point[1])); testandaddneighbor(point, -1, 0); testandaddneighbor(point, 1, 0); testandaddneighbor(point, 0, -1); testandaddneighbor(point, 0, 1); iteration++; Text 30: Grow region runs as long as there are points in the queue. testandaddneighbors first checks if the pixel has been examined before. Pixels that have already been checked will be marked with a value 100 in the mask when they will not be part of the result region and a value 50 if they are accepted in the result region. If the ccordinates are out of the image region the function returns as well. Then the function checks if the intensity of the pixel lies within the the interval defined by the current average intensity plus/minus the threshold. If this is the case the point will be added to the result region, otherwise he will be marked as already checked. In the first case the point will be added to the queue, as well, to avoid that the same point gets into the queue multiple times. volker.baecker@mri.cnrs.fr 24/26
25 function testandaddneighbor(point, xoff, yoff) { neighborx = parseint(point[0]) + xoff; neighbory = parseint(point[1]) + yoff; if (alreadytested(neighborx, neighbory)) return; if (neighborx<0 neighborx>getwidth()-1) return; if (neighbory<0 neighbory>getheight()-1) return; neighborint = getpixel(neighborx, neighbory); average = currentregionintden / currentregionsize; if (neighborint>average-threshold && neighborint<average+threshold) { addtoqueue(neighborx, neighbory); point = newarray(2); point[0] = neighborx; point[1] = neighbory; addtoselection(point, 50); else { point = newarray(2); point[0] = neighborx; point[1] = neighbory; addtoselection(point, 100); function addtoqueue(x, y) { queue = queue + x + "," + y + ";"; function alreadytested(x,y) { result = false; selectimage(mask); if (getpixel(x,y)==50 getpixel(x,y)==100) result = true; selectimage(inputimage); return result; Text 31: The testandaddneighbor function. Finally we threshold the mask image to get only the pixel with intensity 50. We fill holes in the mask so that regions totally surrounded by our result region will be added to the result region. Then we create a selection from the mask and transfer it to the input image. selectimage(mask); setthreshold(50, 50); run("convert to Mask"); run("fill Holes"); run("create Selection"); close(); run("restore Selection"); setbatchmode(false); Text 32: The second half of the region growing macro. Try to run it with different threshold values on the image cells.tif. Remark that threshold values can be floating point numbers in this case. Change the macro to see what happens on the mask while it is created. The macro will run much volker.baecker@mri.cnrs.fr 25/26
26 slower when not in batch mode. 26/26
ImageJ Macro Language Quick-notes.
ImageJ Macro Language Quick-notes. This is a very simplified version of the ImageJ macro language manual. It should be enough to get you started. For more information visit http://rsb.info.nih.gov/ij/developer/macro/macros.html.
More informationIntroduction to MS WINDOWS XP
Introduction to MS WINDOWS XP Mouse Desktop Windows Applications File handling Introduction to MS Windows XP 2 Table of Contents What is Windows XP?... 3 Windows within Windows... 3 The Desktop... 3 The
More informationGetting Started Guide. Chapter 14 Customizing LibreOffice
Getting Started Guide Chapter 14 Customizing LibreOffice Copyright This document is Copyright 2010 2012 by its contributors as listed below. You may distribute it and/or modify it under the terms of either
More informationMicrosoft Access 2010 Part 1: Introduction to Access
CALIFORNIA STATE UNIVERSITY, LOS ANGELES INFORMATION TECHNOLOGY SERVICES Microsoft Access 2010 Part 1: Introduction to Access Fall 2014, Version 1.2 Table of Contents Introduction...3 Starting Access...3
More informationWS_FTP Professional 12
WS_FTP Professional 12 Tools Guide Contents CHAPTER 1 Introduction Ways to Automate Regular File Transfers...5 Check Transfer Status and Logs...6 Building a List of Files for Transfer...6 Transfer Files
More informationNotepad++ The COMPSCI 101 Text Editor for Windows. What is a text editor? Install Python 3
Notepad++ The COMPSCI 101 Text Editor for Windows The text editor that we will be using in the Computer Science labs for creating our Python programs is called Notepad++ and http://notepad-plus-plus.org
More informationModule One: Getting Started... 6. Opening Outlook... 6. Setting Up Outlook for the First Time... 7. Understanding the Interface...
2 CONTENTS Module One: Getting Started... 6 Opening Outlook... 6 Setting Up Outlook for the First Time... 7 Understanding the Interface...12 Using Backstage View...14 Viewing Your Inbox...15 Closing Outlook...17
More informationDiskPulse DISK CHANGE MONITOR
DiskPulse DISK CHANGE MONITOR User Manual Version 7.9 Oct 2015 www.diskpulse.com info@flexense.com 1 1 DiskPulse Overview...3 2 DiskPulse Product Versions...5 3 Using Desktop Product Version...6 3.1 Product
More informationREDUCING YOUR MICROSOFT OUTLOOK MAILBOX SIZE
There are several ways to eliminate having too much email on the Exchange mail server. To reduce your mailbox size it is recommended that you practice the following tasks: Delete items from your Mailbox:
More informationWeb Ambassador Training on the CMS
Web Ambassador Training on the CMS Learning Objectives Upon completion of this training, participants will be able to: Describe what is a CMS and how to login Upload files and images Organize content Create
More informationEmbroidery Fonts Plus ( EFP ) Tutorial Guide Version 1.0505
Embroidery Fonts Plus ( EFP ) Tutorial Guide Version 1.0505 1 Contents Chapter 1 System Requirements.................. 3 Chapter 2 Quick Start Installation.................. 4 System Requirements................
More informationOutlook Email. User Guide IS TRAINING CENTER. 833 Chestnut St, Suite 600. Philadelphia, PA 19107 215-503-7500
Outlook Email User Guide IS TRAINING CENTER 833 Chestnut St, Suite 600 Philadelphia, PA 19107 215-503-7500 This page intentionally left blank. TABLE OF CONTENTS Getting Started... 3 Opening Outlook...
More informationGelAnalyzer 2010 User s manual. Contents
GelAnalyzer 2010 User s manual Contents 1. Starting GelAnalyzer... 2 2. The main window... 2 3. Create a new analysis... 2 4. The image window... 3 5. Lanes... 3 5.1 Detect lanes automatically... 3 5.2
More informationExcel Templates. & Quote/Invoice Maker for ACT! Another efficient and affordable ACT! Add-On by V 1.1. http://www.exponenciel.com
Excel Templates & Quote/Invoice Maker for ACT! V 1.1 Another efficient and affordable ACT! Add-On by http://www.exponenciel.com Excel Templates for ACT! User s Manual 2 Table of content Relationship between
More informationMetadata Import Plugin User manual
Metadata Import Plugin User manual User manual for Metadata Import Plugin 1.0 Windows, Mac OS X and Linux August 30, 2013 This software is for research purposes only. CLC bio Silkeborgvej 2 Prismet DK-8000
More informationLegal Notes. Regarding Trademarks. 2012 KYOCERA Document Solutions Inc.
Legal Notes Unauthorized reproduction of all or part of this guide is prohibited. The information in this guide is subject to change without notice. We cannot be held liable for any problems arising from
More informationCitrix EdgeSight for Load Testing User s Guide. Citrx EdgeSight for Load Testing 2.7
Citrix EdgeSight for Load Testing User s Guide Citrx EdgeSight for Load Testing 2.7 Copyright Use of the product documented in this guide is subject to your prior acceptance of the End User License Agreement.
More informationWorking with Excel in Origin
Working with Excel in Origin Limitations When Working with Excel in Origin To plot your workbook data in Origin, you must have Excel version 7 (Microsoft Office 95) or later installed on your computer
More informationHow to create pop-up menus
How to create pop-up menus Pop-up menus are menus that are displayed in a browser when a site visitor moves the pointer over or clicks a trigger image. Items in a pop-up menu can have URL links attached
More informationAbstract. For notes detailing the changes in each release, see the MySQL for Excel Release Notes. For legal information, see the Legal Notices.
MySQL for Excel Abstract This is the MySQL for Excel Reference Manual. It documents MySQL for Excel 1.3 through 1.3.6. Much of the documentation also applies to the previous 1.2 series. For notes detailing
More informationSearch help. More on Office.com: images templates
Page 1 of 14 Access 2010 Home > Access 2010 Help and How-to > Getting started Search help More on Office.com: images templates Access 2010: database tasks Here are some basic database tasks that you can
More informationCreating Database Tables in Microsoft SQL Server
Creating Database Tables in Microsoft SQL Server Microsoft SQL Server is a relational database server that stores and retrieves data for multi-user network-based applications. SQL Server databases are
More informationCreate a New Database in Access 2010
Create a New Database in Access 2010 Table of Contents OVERVIEW... 1 CREATING A DATABASE... 1 ADDING TO A DATABASE... 2 CREATE A DATABASE BY USING A TEMPLATE... 2 CREATE A DATABASE WITHOUT USING A TEMPLATE...
More informationMS Access Lab 2. Topic: Tables
MS Access Lab 2 Topic: Tables Summary Introduction: Tables, Start to build a new database Creating Tables: Datasheet View, Design View Working with Data: Sorting, Filtering Help on Tables Introduction
More informationAppendix A How to create a data-sharing lab
Appendix A How to create a data-sharing lab Creating a lab involves completing five major steps: creating lists, then graphs, then the page for lab instructions, then adding forms to the lab instructions,
More informationIntroduction to the use of the environment of Microsoft Visual Studio 2008
Steps to work with Visual Studio 2008 1) Start Visual Studio 2008. To do this you need to: a) Activate the Start menu by clicking the Start button at the lower-left corner of your screen. b) Set the mouse
More informationMacros in Word & Excel
Macros in Word & Excel Description: If you perform a task repeatedly in Word or Excel, you can automate the task by using a macro. A macro is a series of steps that is grouped together as a single step
More informationApplying a circular load. Immediate and consolidation settlement. Deformed contours. Query points and query lines. Graph query.
Quick Start Tutorial 1-1 Quick Start Tutorial This quick start tutorial will cover some of the basic features of Settle3D. A circular load is applied to a single soil layer and settlements are examined.
More informationHow to Configure the Workflow Service and Design the Workflow Process Templates
How-To Guide SAP Business One 9.0 Document Version: 1.0 2012-11-15 How to Configure the Workflow Service and Design the Workflow Process Templates Typographic Conventions Type Style Example Description
More informationModel 288B Charge Plate Graphing Software Operators Guide
Monroe Electronics, Inc. Model 288B Charge Plate Graphing Software Operators Guide P/N 0340175 288BGraph (80207) Software V2.01 100 Housel Ave PO Box 535 Lyndonville NY 14098 1-800-821-6001 585-765-2254
More informationPublishing Geoprocessing Services Tutorial
Publishing Geoprocessing Services Tutorial Copyright 1995-2010 Esri All rights reserved. Table of Contents Tutorial: Publishing a geoprocessing service........................ 3 Copyright 1995-2010 ESRI,
More informationF9 Integration Manager
F9 Integration Manager User Guide for use with QuickBooks This guide outlines the integration steps and processes supported for the purposes of financial reporting with F9 Professional and F9 Integration
More informationIntroduction to Microsoft Access 2003
Introduction to Microsoft Access 2003 Zhi Liu School of Information Fall/2006 Introduction and Objectives Microsoft Access 2003 is a powerful, yet easy to learn, relational database application for Microsoft
More informationCreating Personal Web Sites Using SharePoint Designer 2007
Creating Personal Web Sites Using SharePoint Designer 2007 Faculty Workshop May 12 th & 13 th, 2009 Overview Create Pictures Home Page: INDEX.htm Other Pages Links from Home Page to Other Pages Prepare
More informationDevice configurator DRC200
Operating manual 42/49-27 EN Engineer IT Device configurator DRC200 R&C Process Data Management Software Impressum Device configurator DRC200 Operating manual Document No. 42/49-27 EN Date of issue: 11.02
More informationSPSS: Getting Started. For Windows
For Windows Updated: August 2012 Table of Contents Section 1: Overview... 3 1.1 Introduction to SPSS Tutorials... 3 1.2 Introduction to SPSS... 3 1.3 Overview of SPSS for Windows... 3 Section 2: Entering
More informationModule B. Key Applications Using Microsoft Office 2010
Module B Key Applications Using Microsoft Office 2010 Unit 3: Common Elements Key Applications The Key Applications exam includes questions covering three applications (word processing, spreadsheet and
More informationData Warehouse Troubleshooting Tips
Table of Contents "Can't find the Admin layer "... 1 "Can't locate connection document "... 3 Column Headings are Missing after Copy/Paste... 5 Connection Error: ORA-01017: invalid username/password; logon
More informationOperating Systems. and Windows
Operating Systems and Windows What is an Operating System? The most important program that runs on your computer. It manages all other programs on the machine. Every PC has to have one to run other applications
More informationExcel 2003 Tutorial I
This tutorial was adapted from a tutorial by see its complete version at http://www.fgcu.edu/support/office2000/excel/index.html Excel 2003 Tutorial I Spreadsheet Basics Screen Layout Title bar Menu bar
More informationCONTENTM WEBSITE MANAGEMENT SYSTEM. Getting Started Guide
CONTENTM WEBSITE MANAGEMENT SYSTEM Getting Started Guide Table of Contents CONTENTM WEBSITE MANAGEMENT SYSTEM... 1 GETTING TO KNOW YOUR SITE...5 PAGE STRUCTURE...5 Templates...5 Menus...5 Content Areas...5
More informationIBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules
IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This
More informationCall Center - Agent Application User Manual
Forum 700 Call Center Agent Application User Manual Legal notice: Belgacom and the Belgacom logo are trademarks of Belgacom. All other trademarks are the property of their respective owners. The information
More informationDifferences in Use between Calc and Excel
Differences in Use between Calc and Excel Title: Differences in Use between Calc and Excel: Version: 1.0 First edition: October 2004 Contents Overview... 3 Copyright and trademark information... 3 Feedback...3
More informationExcel 2007 Basic knowledge
Ribbon menu The Ribbon menu system with tabs for various Excel commands. This Ribbon system replaces the traditional menus used with Excel 2003. Above the Ribbon in the upper-left corner is the Microsoft
More informationAB-Clock. Manual. Copyright 1996-2004 by GRAHL software design
Manual Contents Contents Welcome! 4 4... The AB-Clock Menu 4... AB-Clock Settings 5... Start and Exit AB-Clock 5 Start AB-Clock... 5 Exit AB-Clock... 5 Start Parameters... 6 Procedures... 6 How to... run
More informationAppendix K Introduction to Microsoft Visual C++ 6.0
Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):
More informationNETWORK PRINT MONITOR User Guide
NETWORK PRINT MONITOR User Guide Legal Notes Unauthorized reproduction of all or part of this guide is prohibited. The information in this guide is subject to change without notice. We cannot be held liable
More informationTABLE OF CONTENTS. INTRODUCTION... 5 Advance Concrete... 5 Where to find information?... 6 INSTALLATION... 7 STARTING ADVANCE CONCRETE...
Starting Guide TABLE OF CONTENTS INTRODUCTION... 5 Advance Concrete... 5 Where to find information?... 6 INSTALLATION... 7 STARTING ADVANCE CONCRETE... 7 ADVANCE CONCRETE USER INTERFACE... 7 Other important
More informationTeradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences. Mike Dempsey
Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences by Mike Dempsey Overview SQL Assistant 13.0 is an entirely new application that has been re-designed from the ground up. It has been
More informationHow To Use Excel With A Calculator
Functions & Data Analysis Tools Academic Computing Services www.ku.edu/acs Abstract: This workshop focuses on the functions and data analysis tools of Microsoft Excel. Topics included are the function
More informationDataPA OpenAnalytics End User Training
DataPA OpenAnalytics End User Training DataPA End User Training Lesson 1 Course Overview DataPA Chapter 1 Course Overview Introduction This course covers the skills required to use DataPA OpenAnalytics
More informationWindows XP Managing Your Files
Windows XP Managing Your Files Objective 1: Understand your computer s filing system Your computer's filing system has three basic divisions: files, folders, and drives. 1. File- everything saved on your
More informationVERITAS NetBackup Microsoft Windows User s Guide
VERITAS NetBackup Microsoft Windows User s Guide Release 3.2 Windows NT/95/98 May, 1999 P/N 100-001004 1994-1999 VERITAS Software Corporation. All rights reserved. Portions of this software are derived
More informationWindows XP Pro: Basics 1
NORTHWEST MISSOURI STATE UNIVERSITY ONLINE USER S GUIDE 2004 Windows XP Pro: Basics 1 Getting on the Northwest Network Getting on the Northwest network is easy with a university-provided PC, which has
More informationhttp://school-maths.com Gerrit Stols
For more info and downloads go to: http://school-maths.com Gerrit Stols Acknowledgements GeoGebra is dynamic mathematics open source (free) software for learning and teaching mathematics in schools. It
More informationCitrix EdgeSight for Load Testing User s Guide. Citrix EdgeSight for Load Testing 3.8
Citrix EdgeSight for Load Testing User s Guide Citrix EdgeSight for Load Testing 3.8 Copyright Use of the product documented in this guide is subject to your prior acceptance of the End User License Agreement.
More informationContext-sensitive Help Guide
MadCap Software Context-sensitive Help Guide Flare 11 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this
More informationWeb Intelligence User Guide
Web Intelligence User Guide Office of Financial Management - Enterprise Reporting Services 4/11/2011 Table of Contents Chapter 1 - Overview... 1 Purpose... 1 Chapter 2 Logon Procedure... 3 Web Intelligence
More informationUsing SQL Server Management Studio
Using SQL Server Management Studio Microsoft SQL Server Management Studio 2005 is a graphical tool for database designer or programmer. With SQL Server Management Studio 2005 you can: Create databases
More informationExercise 4 Learning Python language fundamentals
Exercise 4 Learning Python language fundamentals Work with numbers Python can be used as a powerful calculator. Practicing math calculations in Python will help you not only perform these tasks, but also
More information13-1. This chapter explains how to use different objects.
13-1 13.Objects This chapter explains how to use different objects. 13.1. Bit Lamp... 13-3 13.2. Word Lamp... 13-5 13.3. Set Bit... 13-9 13.4. Set Word... 13-11 13.5. Function Key... 13-18 13.6. Toggle
More informationManual Software SPECTRO3-MONITORING V5.0
Manual Software SPECTRO3-MONITORING V5.0 (PC software for Microsoft Windows XP, VISTA, 7) for color sensors of the SPECTRO-3 series This manual describes the installation and operation of the SPECTRO3-MONITORING
More informationDesktop, Web and Mobile Testing Tutorials
Desktop, Web and Mobile Testing Tutorials * Windows and the Windows logo are trademarks of the Microsoft group of companies. 2 About the Tutorial With TestComplete, you can test applications of three major
More informationIntroduction To Microsoft Office PowerPoint 2007. Bob Booth July 2008 AP-PPT5
Introduction To Microsoft Office PowerPoint 2007. Bob Booth July 2008 AP-PPT5 University of Sheffield Contents 1. INTRODUCTION... 3 2. GETTING STARTED... 4 2.1 STARTING POWERPOINT... 4 3. THE USER INTERFACE...
More informationIntroduction to the TI-Nspire CX
Introduction to the TI-Nspire CX Activity Overview: In this activity, you will become familiar with the layout of the TI-Nspire CX. Step 1: Locate the Touchpad. The Touchpad is used to navigate the cursor
More informationComputer Programming In QBasic
Computer Programming In QBasic Name: Class ID. Computer# Introduction You've probably used computers to play games, and to write reports for school. It's a lot more fun to create your own games to play
More informationAdvanced Presentation Features and Animation
There are three features that you should remember as you work within PowerPoint 2007: the Microsoft Office Button, the Quick Access Toolbar, and the Ribbon. The function of these features will be more
More informationPlotting: Customizing the Graph
Plotting: Customizing the Graph Data Plots: General Tips Making a Data Plot Active Within a graph layer, only one data plot can be active. A data plot must be set active before you can use the Data Selector
More informationGetting Started Guide
Getting Started Guide Mulberry IMAP Internet Mail Client Versions 3.0 & 3.1 Cyrusoft International, Inc. Suite 780 The Design Center 5001 Baum Blvd. Pittsburgh PA 15213 USA Tel: +1 412 605 0499 Fax: +1
More informationHow to test and debug an ASP.NET application
Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult
More informationUsing Windows XP and File Management Handout (Staff)
Using Windows XP and File Management Handout (Staff) The XP Interface Logging on to your computer. Logging in on campus. Analogy of a safe. Login screen Domains - FFLDU, Fairfield, Local Machine, Prep
More informationUser Manual V1.3. NCB File Converter. @alahlincb. /alahlincb. 9 2000 1000 www.alahli.com
User Manual V1.3 NCB File Converter @alahlincb /alahlincb 9 2000 1000 www.alahli.com The National Commercial Bank File Converter User Manual Copyright 2013 The National Commercial Bank Page 2 of 44 Table
More informationMicrosoft Office Access 2007 Basics
Access(ing) A Database Project PRESENTED BY THE TECHNOLOGY TRAINERS OF THE MONROE COUNTY LIBRARY SYSTEM EMAIL: TRAININGLAB@MONROE.LIB.MI.US MONROE COUNTY LIBRARY SYSTEM 734-241-5770 1 840 SOUTH ROESSLER
More informationNetwork Probe User Guide
Network Probe User Guide Network Probe User Guide Table of Contents 1. Introduction...1 2. Installation...2 Windows installation...2 Linux installation...3 Mac installation...4 License key...5 Deployment...5
More informationOhio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide
Open Crystal Reports From the Windows Start menu choose Programs and then Crystal Reports. Creating a Blank Report Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick
More informationMyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC
MyOra 3.0 SQL Tool for Oracle User Guide Jayam Systems, LLC Contents Features... 4 Connecting to the Database... 5 Login... 5 Login History... 6 Connection Indicator... 6 Closing the Connection... 7 SQL
More informationIntegrated Accounting System for Mac OS X and Windows
Integrated Accounting System for Mac OS X and Windows Program version: 6.2 110111 2011 HansaWorld Ireland Limited, Dublin, Ireland Preface Books by HansaWorld is a powerful accounting system for the Mac
More information1 Introduction. 2 Project Browser. 3 FlowStone Editor
USER GUIDE C O N T E N T S CHAPTER 1 1 Introduction 3 OVERVIEW... 4 ABOUT THIS GUIDE...4 CHAPTER 2 2 Project Browser 5 OVERVIEW... 6 NAVIGATOR... 6 TOOLBAR...7 PROJECT LIST... 7 PROJECT ACTIONS... 9 OPENING
More informationGetting Started with Vision 6
Getting Started with Vision 6 Version 6.9 Notice Copyright 1981-2009 Netop Business Solutions A/S. All Rights Reserved. Portions used under license from third parties. Please send any comments to: Netop
More informationQIAsymphony Management Console User Manual
April 2012 QIAsymphony Management Console User Manual For use with software version 4.0 Sample & Assay Technologies Trademarks QIAGEN, QIAsymphony, Rotor-Gene (QIAGEN Group). InstallShield (Informer Technologies,
More informationExcel Reporting with 1010data
Excel Reporting with 1010data (212) 405.1010 info@1010data.com Follow: @1010data www.1010data.com Excel Reporting with 1010data Contents 2 Contents Overview... 3 Start with a 1010data query... 5 Running
More informationIntroduction to Microsoft Access XP
Introduction to Microsoft Access XP Access is the database management system in Microsoft Office. A database is an organized collection of facts about a particular subject. An address book or a library
More informationUniversal Simple Control, USC-1
Universal Simple Control, USC-1 Data and Event Logging with the USB Flash Drive DATA-PAK The USC-1 universal simple voltage regulator control uses a flash drive to store data. Then a propriety Data and
More informationSpaceClaim Introduction Training Session. A SpaceClaim Support Document
SpaceClaim Introduction Training Session A SpaceClaim Support Document In this class we will walk through the basic tools used to create and modify models in SpaceClaim. Introduction We will focus on:
More informationFirstClass FAQ's An item is missing from my FirstClass desktop
FirstClass FAQ's An item is missing from my FirstClass desktop Deleted item: If you put a item on your desktop, you can delete it. To determine what kind of item (conference-original, conference-alias,
More informationVistaPoint Companion is a client program used within the VistaPoint Enterprise system. VistaPoint Companion is available in two versions:
VistaPoint Companion Users Guide file:///c:/users/tdavis/appdata/local/temp/~hh2a10.htm Page 1 of 3 10/22/2012 VistaPoint Companion Users Guide For VistaPoint Console Companion and VistaPoint Desktop Companion
More informationUSER AND INSTALLATION MANUAL
Revision 1 - October 2013 User and installation manual O-link The manufacturer OWANDY reserves the right to make modifications to its products or to their specifications in order to improve the performance,
More informationEMC Documentum Webtop
EMC Documentum Webtop Version 6.5 User Guide P/N 300 007 239 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 1994 2008 EMC Corporation. All rights
More informationUSC Marshall School of Business Marshall Information Services
USC Marshall School of Business Marshall Information Services Excel Dashboards and Reports The goal of this workshop is to create a dynamic "dashboard" or "Report". A partial image of what we will be creating
More informationHow to Edit Your Website
How to Edit Your Website A guide to using your Content Management System Overview 2 Accessing the CMS 2 Choosing Your Language 2 Resetting Your Password 3 Sites 4 Favorites 4 Pages 5 Creating Pages 5 Managing
More informationChanging Your Cameleon Server IP
1.1 Overview Technical Note Cameleon requires that you have a static IP address defined for the server PC the Cameleon server application runs on. Even if the server PC has a static IP address, you may
More information3. Add and delete a cover page...7 Add a cover page... 7 Delete a cover page... 7
Microsoft Word: Advanced Features for Publication, Collaboration, and Instruction For your MAC (Word 2011) Presented by: Karen Gray (kagray@vt.edu) Word Help: http://mac2.microsoft.com/help/office/14/en-
More informationCLC Bioinformatics Database
CLC Bioinformatics Database End User USER MANUAL Manual for CLC Bioinformatics Database 4.6 Windows, Mac OS X and Linux September 3, 2015 This software is for research purposes only. QIAGEN Aarhus A/S
More information14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë
14.1 bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë bî~äì~íáåö=oéñäéåíáçå=ñçê=emi=rkfui=~åç=lééåsjp=eçëíë This guide walks you quickly through key Reflection features. It covers: Getting Connected
More informationTable of Contents. 1. Content Approval...1 EVALUATION COPY
Table of Contents Table of Contents 1. Content Approval...1 Enabling Content Approval...1 Content Approval Workflows...4 Exercise 1: Enabling and Using SharePoint Content Approval...9 Exercise 2: Enabling
More informationNDA-30141 ISSUE 1 STOCK # 200893. CallCenterWorX-Enterprise IMX MAT Quick Reference Guide MAY, 2000. NEC America, Inc.
NDA-30141 ISSUE 1 STOCK # 200893 CallCenterWorX-Enterprise IMX MAT Quick Reference Guide MAY, 2000 NEC America, Inc. LIABILITY DISCLAIMER NEC America, Inc. reserves the right to change the specifications,
More informationBID2WIN Workshop. Advanced Report Writing
BID2WIN Workshop Advanced Report Writing Please Note: Please feel free to take this workbook home with you! Electronic copies of all lab documentation are available for download at http://www.bid2win.com/userconf/2011/labs/
More information13 Managing Devices. Your computer is an assembly of many components from different manufacturers. LESSON OBJECTIVES
LESSON 13 Managing Devices OBJECTIVES After completing this lesson, you will be able to: 1. Open System Properties. 2. Use Device Manager. 3. Understand hardware profiles. 4. Set performance options. Estimated
More information