A BaSiC Tool for Background and Shading Correction of Optical Microscopy Images

Related tags

Deep Learning BaSiC
Overview

BaSiC

Matlab code accompanying

A BaSiC Tool for Background and Shading Correction of Optical Microscopy Images

by Tingying Peng, Kurt Thorn, Timm Schroeder, Lichao Wang, Fabian J Theis, Carsten Marr*, Nassir Navab*, Nature Communication 8:14836 (2017). doi: 10.1038/ncomms14836.

BaSiC is licensed under

Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License

It is free for academic use and please contact us for any commercial use.

Usage

BaSiC corrects both spatial uneven illumination of microscopy images and temporal background bleaching for time-lapse movies.

Demo

Download demo data examples from Dropbox and run matlab files under example folder.

ImageJ/Fiji Plugin

BaSiC is also available as a ImageJ/Fiji Plugin.

Installation instruction

Note: If you do not have Fiji installed on your computer, you can download it from Fiji website.

Install via Fiji Updater

  1. Start Fiji and run the updater ("Help->Update Fiji")
  2. Select the "Manage Update Sites" button at the bottom-left of the updater window
  3. Scroll the list of available update sites to find "BaSiC" (Note: If you cannot find "BaSiC" in the list, select "Add Update Sites", Change the name field from default "New" to "BaSiC", set the URL field to http://sites.imagej.net/BaSiC/)
  4. Check the box at the left of "BaSiC"
  5. Select "Close"
  6. Select "Apply Changes"
  7. Restart Fiji. BaSiC should appear in the Plugins menu.

From now on, running the Fiji updater will also check for BaSiC updates, and install them if they are available.

Install manually

Please download BaSiC Plugin from this repository.

  1. Copy “BaSiC_.jar” to the “$FIJIROOT/plugins” folder of your Fiji/ImageJ installation.
  2. Copy all dependent jar files in the "Dependent" folder to your Fiji/ImageJ "$FIJIROOT/jars" directory.

Troubleshooting

If you get the error message

"java.lang.NoSuchMethodError: edu.emory.mathcs.utils.ConcurrencyUtils.submit"

make sure that in your Fiji/ImageJ "$FIJIROOT/jars" directory, there is only one version of each jar from the "Dependent" folder. Particularly, delete jtransforms-2.4.jar and replace it with our jtransform.jar.

Issues

If you have any issues concerning BaSiC, please report them in the Issues section of this GitHub repository and we will try to find a solution.

PyBaSiC

Planed and in progress

You might also like...
A series of convenience functions to make basic image processing operations such as translation, rotation, resizing, skeletonization, and displaying Matplotlib images easier with OpenCV and Python.
A series of convenience functions to make basic image processing operations such as translation, rotation, resizing, skeletonization, and displaying Matplotlib images easier with OpenCV and Python.

imutils A series of convenience functions to make basic image processing functions such as translation, rotation, resizing, skeletonization, and displ

A Web API for automatic background removal using Deep Learning. App is made using Flask and deployed on Heroku.
A Web API for automatic background removal using Deep Learning. App is made using Flask and deployed on Heroku.

Automatic_Background_Remover A Web API for automatic background removal using Deep Learning. App is made using Flask and deployed on Heroku. 👉 https:

Codes for the paper Contrast and Mix: Temporal Contrastive Video Domain Adaptation with Background Mixing
Codes for the paper Contrast and Mix: Temporal Contrastive Video Domain Adaptation with Background Mixing

Contrast and Mix (CoMix) The repository contains the codes for the paper Contrast and Mix: Temporal Contrastive Video Domain Adaptation with Backgroun

RobustVideoMatting and background composing in one model by using onnxruntime.

RVM_onnx_compose RobustVideoMatting and background composing in one model by using onnxruntime. Usage pip install -r requirements.txt python infer_cam

Automatic Image Background Subtraction

Automatic Image Background Subtraction This repo contains set of scripts for automatic one-shot image background subtraction task using the following

Real-Time High-Resolution Background Matting
Real-Time High-Resolution Background Matting

Real-Time High-Resolution Background Matting Official repository for the paper Real-Time High-Resolution Background Matting. Our model requires captur

PyTorch implementation of ''Background Activation Suppression for Weakly Supervised Object Localization''.
PyTorch implementation of ''Background Activation Suppression for Weakly Supervised Object Localization''.

Background Activation Suppression for Weakly Supervised Object Localization PyTorch implementation of ''Background Activation Suppression for Weakly S

Feedback is important: response-aware feedback mechanism for background based conversation

RFM The code for the paper: "Feedback is important: response-aware feedback mechanism for background based conversation." Requirements python 3.7 pyto

A lightweight deep network for fast and accurate optical flow estimation.
A lightweight deep network for fast and accurate optical flow estimation.

FastFlowNet: A Lightweight Network for Fast Optical Flow Estimation The official PyTorch implementation of FastFlowNet (ICRA 2021). Authors: Lingtong

Comments
  • How to regularize more strongly (working with sparse images)?

    How to regularize more strongly (working with sparse images)?

    Thanks for BaSiC which generally works awesome. However we sometimes find issues when processing fluorescence images from plates with sparse cells. I'm under the impression that there are two potential pitfalls for BaSiC:

    • If the cells are sparse and small, the imresize() may not capture them at all? It will use nearest neighbor, as far as I could see, so it may just happen to not grasp the relevant foreground pixels?
    • The model from BaSiC is sometimes quite irregular, with strong local variations, i.e. in cases of dirt or sparse cells. I think it would help to regularize more strongly, but I do not know how to sensibly do that in the code. Actually I am often under the impression that a resolution of 32x32 instead of 128x128 would be sufficient, but I do not feel comfortable to change such integral settings of the method. Do you have recommendations for regularization of the model?
    opened by emmenlau 0
  • Error in defining 'BaSiC' variable from source code of WSI brain demoexamples file

    Error in defining 'BaSiC' variable from source code of WSI brain demoexamples file

    Hi, I ran the demo examples WSI brain Matlab code and error was occurred like below:

    Unrecognized function or variable 'BaSiC'.

    Error in example_brainWSI (line 14) [flatfield,darkfield] = BaSiC(IF,'darkfield','true');

    opened by haymar992 0
  • multiple locations found

    multiple locations found

    I installed the BaSiC plugin as outlined and have used it before on Fiji. Recently I tried to use it again and it hit the following incompatibility. I don't know where to start from in troubleshooting.

    [Sun Oct 03 17:30:57 CEST 2021] [ERROR] [] null java.lang.NoSuchMethodException: Could not find method edu.emory.mathcs.utils.ConcurrencyUtils.getThreadsBeginN_1D()I There was a problem with the class edu.emory.mathcs.utils.ConcurrencyUtils which can be found here: /Users/work/Applications/Fiji.app/jars/jtransforms-2.4.jar /Users/work/Applications/Fiji.app/jars/parallelcolt-0.9.4.jar

    WARNING: multiple locations found! java.lang.NoSuchMethodError: edu.emory.mathcs.utils.ConcurrencyUtils.getThreadsBeginN_1D()I at cern.colt.matrix.tdouble.impl.DenseDoubleMatrix1D.zSum(Unknown Source) at BaSiC_.matrixMean(BaSiC_.java:1041) at BaSiC_.ShadingCorrection(BaSiC_.java:540) at BaSiC_.exec(BaSiC_.java:403) at BaSiC_.processDialog(BaSiC_.java:259) at BaSiC_.showDialog(BaSiC_.java:164) at BaSiC_.run(BaSiC_.java:113) at ij.IJ.runUserPlugIn(IJ.java:241) at ij.IJ.runPlugIn(IJ.java:204) at ij.Executer.runCommand(Executer.java:150) at ij.Executer.run(Executer.java:68) at java.lang.Thread.run(Thread.java:748)

    at cern.colt.matrix.tdouble.impl.DenseDoubleMatrix1D.zSum(Unknown Source)
    at BaSiC_.matrixMean(BaSiC_.java:1041)
    at BaSiC_.ShadingCorrection(BaSiC_.java:540)
    at BaSiC_.exec(BaSiC_.java:403)
    at BaSiC_.processDialog(BaSiC_.java:259)
    at BaSiC_.showDialog(BaSiC_.java:164)
    at BaSiC_.run(BaSiC_.java:113)
    at ij.IJ.runUserPlugIn(IJ.java:241)
    at ij.IJ.runPlugIn(IJ.java:204)
    at ij.Executer.runCommand(Executer.java:150)
    at ij.Executer.run(Executer.java:68)
    at java.lang.Thread.run(Thread.java:748)
    
    opened by olasabet 4
  • There are no images open" during ImageJ --headless">

    " There are no images open" during ImageJ --headless

    Hi. I'm trying to call basic during ImageJ headless execution, but I get the error message in the title.

    ImagePlus stack = FolderOpener.open(currentChannelPath);
    stack.setTitle("Stack.tif");
    IJ.run(stack, "BaSiC ", "processing_stack=Stack.tif flat-field=None dark-field=None shading_estimation=[Estimate shading profiles] shading_model=[Estimate flat-field only (ignore dark-field)] setting_regularisationparametes=Automatic temporal_drift=Ignore correction_options=[Compute shading and correct images] lambda_flat=0.50 lambda_dark=0.50");
    

    Then I get the error, even though the stack is opened. I run ImageJ from the command line using --headless and call the script above during excecution. Would greatly appreciate any help!

    opened by Anders-Lunde 14
Owner
Marr Lab
Marr Lab
An image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testingAn image base contains 490 images for learning (400 cars and 90 boats), and another 21 images for testing

SVM Données Une base d’images contient 490 images pour l’apprentissage (400 voitures et 90 bateaux), et encore 21 images pour fait des tests. Prétrait

Achraf Rahouti 3 Nov 30, 2021
Demo code for paper "Learning optical flow from still images", CVPR 2021.

Depthstillation Demo code for "Learning optical flow from still images", CVPR 2021. [Project page] - [Paper] - [Supplementary] This code is provided t

null 130 Dec 25, 2022
A fast model to compute optical flow between two input images.

DCVNet: Dilated Cost Volumes for Fast Optical Flow This repository contains our implementation of the paper: @InProceedings{jiang2021dcvnet, title={

Huaizu Jiang 8 Sep 27, 2021
UA-GEC: Grammatical Error Correction and Fluency Corpus for the Ukrainian Language

UA-GEC: Grammatical Error Correction and Fluency Corpus for the Ukrainian Language This repository contains UA-GEC data and an accompanying Python lib

Grammarly 226 Dec 29, 2022
Towards Rolling Shutter Correction and Deblurring in Dynamic Scenes (CVPR2021)

RSCD (BS-RSCD & JCD) Towards Rolling Shutter Correction and Deblurring in Dynamic Scenes (CVPR2021) by Zhihang Zhong, Yinqiang Zheng, Imari Sato We co

null 81 Dec 15, 2022
a basic code repository for basic task in CV(classification,detection,segmentation)

basic_cv a basic code repository for basic task in CV(classification,detection,segmentation,tracking) classification generate dataset train predict de

null 1 Oct 15, 2021
Release of SPLASH: Dataset for semantic parse correction with natural language feedback in the context of text-to-SQL parsing

SPLASH: Semantic Parsing with Language Assistance from Humans SPLASH is dataset for the task of semantic parse correction with natural language feedba

Microsoft Research - Language and Information Technologies (MSR LIT) 35 Oct 31, 2022
Source code for the paper "PLOME: Pre-training with Misspelled Knowledge for Chinese Spelling Correction" in ACL2021

PLOME:Pre-training with Misspelled Knowledge for Chinese Spelling Correction (ACL2021) This repository provides the code and data of the work in ACL20

null 197 Nov 26, 2022
[AAAI22] Reliable Propagation-Correction Modulation for Video Object Segmentation

Reliable Propagation-Correction Modulation for Video Object Segmentation (AAAI22) Preview version paper of this work is available at: https://arxiv.or

Xiaohao Xu 2 Dec 7, 2021
A simple tutoral for error correction task, based on Pytorch

gramcorrector A simple tutoral for error correction task, based on Pytorch Grammatical Error Detection (sentence-level) a binary sequence-based classi

peiyuan_gong 8 Dec 3, 2022