BioImager
A .NET microscopy imaging application based on Bio library. Supports various microscopes by using imported libraries & GUI automation. Supports XInput game controllers to move stage, take images, run ImageJ macros on images or Bio C# scripts.
Install / Use
/learn @BiologyTools/BioImagerREADME
BioImager
A .NET microscopy imaging application based on Bio. Supports various microscopes by using imported libraries & GUI automation. Supported libraries include Prior® & Zeiss® & all devices supported by latest Micromanager 2.0 and python-microscope. If your microscope is not supported check your manufacturer's SDK to implement "Microscope.cs" or use GUI Automation functions. Works with or without hardware through microscope simulation. Allows for tiled & depth stack imaging & supports XInput game controllers to move stage, take images, run ImageJ macros on images or Bio C# scripts. Also check out the wiki for library usage. or check out the documentation.
Sample Microscope Script
//If the GUI Recording for setting folder is set, we can set the microscope storage folder.
Microscope.SetFolder("F:/Images/5x/");
Microscope.Objectives.SetPosition(0);
Microscope.TakeImage();
Microscope.MoveFieldLeft();
//We can take an image stack based on properties set in the GUI
Microscope.TakeImageStack();
// or by specifying them in script.
Microscope.TakeImageStack(25000,25050,10)
Microscope.MoveFieldDown();
Microscope.TakeTiles(4,4);
Microscope.Objectives.SetPosition(1);
Microscope.SetFolder("F:/Images/10x/");
Microscope.TakeTiles(4,4);
Features
-
C# scripting with sample tool-script and other sample scripts in "/Scripts/" folder. See samples
-
Cell Imager tool allows for performing imaging routines on individual cells based on blob detection.
-
Supports running ImageJ macro commands on images open in Bio. New Console to run ImageJ macro commands and Bio C# functions.
-
Multiple view modes like Emission, and Filtered. ROI's shown for each channel can be configured in ROI Manager.
-
Supports drawing shapes & colors onto 16 bit & 48 bit images, unlike System.Drawing.Graphics.
-
Convenient viewing of image stacks with scroll wheel moving Z-plane and mouse side buttons scrolling C-planes.
-
Editing & saving ROI's in images to OME format image stacks.
-
Copy & Paste to quickly annotate images and name them easily by right click.
-
Select multiple points by holding down control key, for delete & move tools.
-
Exporting ROI's from each OME image in a folder of images to CSV.
-
Easy freeform annotation with magic select tool which selects based on blob detection.
-
Use AForge filters by opening filters tool window and right click to apply. Currently supports only some AForge filters as many of them do not support 16bit and 48bit images. Convert to 8bit image to make use of more filters. Applyed filters can be easily recorded and used in scripts. Bio impliments some filters like crop for 16 & 48 bit images.
Setup
- Install dependency OpenSlide be sure to add the /bin path of opeslide binaries to your Environmental Variable PATH. By editing your PATH variable.
- For Micro-Manager 2.0 install the nightly build from here.
- For detailed Setup instructions see setup.
- For Zeiss® set the MTB® Api library path to version of MTB® you are using, found in program files.
- For Prior® download Prior® SDK and set path to Prior® SDK PriorScientificSDK.dll
- Set Functions to controller buttons by double clicking labels. Functions include all microscope functions & ImageJ & Bio C# scripts.
- Optionally install CUDA for hardware accelerated stitching as well as tile cache in graphics card memory instead of RAM.
Star this project on Github to help spread the word about Bio!
Dependencies
Licenses
- Bio GPL3
- AForge LGPL
- BioFormats.Net GPL3
- IKVM
- LibTiff.Net BSD
- Cs-script MIT
- Prior® Scientific EULA v1.0 Prior® SDK
- MTB SDK© 2019 by Carl Zeiss Microscopy
Scripting
- Save scripts into "StartupPath/Scripts" with ".cs" ending.
- Open script editor and recorder from menu.
- Double click on script name in Script runner to run script.
- Scripts saved in Scripts folder will be loaded into script runner.
- Program installer include sample script "Sample.cs" which gets & sets pixels and saves resulting image.
- Use Script recorder to record program function calls and script runner to turn recorder text into working scripts. (See sample) scripts
Plugins
- Save plugin DLL's into "StartupPath/Plugins"
- See example plugin to create your own plugins.
Sample Tool Script
//css_reference Bio.dll;
using System;
using System.Windows.Forms;
using System.Drawing;
using Bio;
using System.Threading;
public class Loader
{
//Point ROI Tool Example
public string Load()
{
int ind = 1;
do
{
Bio.Scripting.State s = Bio.Scripting.GetState();
if (s != null)
{
if (!s.processed)
{
if (s.type == Bio.Scripting.Event.Down && s.buts == MouseButtons.Left)
{
ZCT cord = Bio.App.viewer.GetCoordinate();
Bio.Scripting.LogLine(cord.ToString() + " Coordinate");
Bio.ROI an = Bio.ROI.CreatePoint(cord, s.p.X, s.p.Y);
Bio.ImageView.SelectedImage.Annotations.Add(an);
Bio.Scripting.LogLine(cord.ToString() + " Coordinate");
an.Text = "Point" + ind;
ind++;
Bio.Scripting.LogLine(s.ToString() + " Point");
//ImageView.viewer.UpdateOverlay();
}
else
if (s.type == Bio.Scripting.Event.Up)
{
Bio.Scripting.LogLine(s.ToString());
}
else
if (s.type == Bio.Scripting.Event.Move)
{
Bio.Scripting.LogLine(s.ToString());
}
s.processed = true;
}
}
} while (true);
return "OK";
}
}
Related Skills
openhue
343.3kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
343.3kElevenLabs text-to-speech with mac-style say UX.
weather
343.3kGet current weather and forecasts via wttr.in or Open-Meteo
tweakcc
1.5kCustomize Claude Code's system prompts, create custom toolsets, input pattern highlighters, themes/thinking verbs/spinners, customize input box & user message styling, support AGENTS.md, unlock private/unreleased features, and much more. Supports both native/npm installs on all platforms.
