Video analysis of green canopy cover

Hello everyone,

I’ve been using ImageJ to estimate green canopy cover of row crops. Before deciding on ImageJ, I also tried Canopeo, an app developed my Oklahoma State University. Both provide estimates of green canopy cover but ultimately I decided with go with ImageJ because of increased functionality.

One nice feature that Canopeo provides is the ability to estimate green canopy cover from both still images and video. The video feature is possible via a Canopeo add-in within Matlab.

My question - is it possible to estimate green canopy cover in ImageJ from video?

Thanks in advance for the help,


Hi @majones,

this should be possible.
I am not exactly sure how you plan to analyze this in your image/video but as soon as you worked out a strategy to do it for a single image, this will be transferable onto a stack (video) with a few more lines of macro code.
You can achieve this via a for loops including a Stack.setFrame(n); command to jump to the following frames.

If you appy a measurement via a ROI in RoiManager then you might want to use teh MultiMeasure option under the More button in the RoiManager

1 Like

Hi biovoxxel,

Thanks for your input and advice. I currently use a macro to analyze my still images. The Canopeo add-in for Matlab allows .avi, .wmv, .mov, and .mp4 as input formats. The video is then segmented into a number of frames and there are controls available for skipping any number of frames in order to reduce the time needed for analyzing large videos.

I’ve not used stacks before but after reading a bit on them, it appears that stacks are used to analyze multiple or large numbers of still images. It appears that stacking the images also allows for animation to visualize changes over time.

In my case, the data would be collected as a video but I’d like to conduct the analysis on images. It seems that the macro in ImageJ requires data loaded as images. Perhaps there’s a program other than ImageJ that could convert video into a number of frames?


Hi @majones,

if you open a video in ImageJ it will automatically be displayed as a stack. Analysis wise the program will run frame by frame over your stack to analyze the images. In the end you can thus simply compare the individual results from each frame independent if those where collected as individual images or as a movie. In such a case, ImageJ doesn’t care about how the images were taken since it is simply a sequence of images (connected to each other or not).
But to give a more specific advice it would help if you could provide a link to an example video/stack and your macro to help you further.