Skip to content
Joint Multi-Leaf Segmentation, Alignment, and Tracking from Fluorescence Plant Videos
MATLAB M
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Data
Demo
GenerateTemplates.m
MultiLeafAlignment.m
MultiLeafTracking.m
README.md
alignment_cal_grad.m
alignment_calculateObjective.m
alignment_chamferMatching.m
alignment_chamferMatchingForAllTemplates.m
alignment_gradientDescent.m
alignment_initialization.m
data_adjustWithinImage.m
data_cropBinaryImage.m
data_imageSegmentation.m
data_preprocessTestImages.m
data_readInputTextFile.m
data_readLocationFile.m
data_sortImagesInOrder.m
displayResult.m
trackingResultInTextFile.m
trackingResultVisulization.m
tracking_GradientDescent3.m
tracking_cal_constant.m
tracking_cal_grad1.m
tracking_cal_grad2.m
tracking_cal_grad3.m
tracking_cal_objective.m
tracking_cal_objective3.m
tracking_generateLeafInformation.m
tracking_generateNewCandidates.m
tracking_generateTemplateInformation.m
tracking_leafAlignmentForLastFrame.m
tracking_renewTemplates.m

README.md

PlantVision

Introduction

Joint Multi-Leaf Segmentation, Alignment, and Tracking from Fluorescence Plant Videos

More details about the project can be found at: http://cvlab.cse.msu.edu/project-plant-vision.html

Usage

Main entrance file: MultiLeafTracking.m.

You need to prepare your data into the required format. Check dara_readInputTextFile.m to see how the txt file is parsed. Specifically, the inputData is a txt file that stores the image paths and plant location informations. It looks like this:

2
1 1 100 200 80 80 
1 2 100 400 90 90
image_frame_1.jpg
image_frame_2.jpg
image_frame_3.jpg

The first row is the total number of N plants in the image/video frames. Then the next N rows are the plant IDs and locations. Each row is in the format: plant_row, plant_column, location_row, location_column, height, width. We assume the camera is fixed so the locations apply to all frames. The remaining rows are the paths to the image frames in order. After you have prepared your data into this format, you can use MultiLeafTracking.m to process your data. Please pay attention to the leaf sizes in your data and change the smallSize and largeSize accordingly. You may also need to generate your own leaf templates if needed.

Demo

There is an example file in Demo/input.txt. You can run the demo.

MultiLeafTracking('Demo/input.txt')

Please note that if you ever get invalid results. It is very likely due to image pre-processing. Make sure the plant is centered with tight margin. You can check the edge map (testIm) and the mask (testMask) to see if pre-processing is successful.

Citation

If you found this code useful, please consider to cite:

@article{yin2018joint,
  title={Joint Multi-Leaf Segmentation, Alignment, and Tracking for Fluorescence Plant Videos},
  author={Yin, Xi and Liu, Xiaoming and Chen, Jin and Kramer, David M},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  volume={40},
  number={6},
  pages={1411--1423},
  year={2018},
  publisher={IEEE}
}
You can’t perform that action at this time.