
Digital Cover Photography (DCP) is an increasingly popular method for estimating tree canopy attributes like canopy cover and leaf area index (LAI). Unlike fisheye photography, where the entire canopy footprint (180° field of view - FOV) is captured inside a circle that occupies roughly half the image pixels inside the rectangular camera frame, DCP uses all the image pixels to sample a restricted canopy portion close to the zenith (30° FOV), which brings several advantages. Indeed, the high resolution and the uniform sky luminance yield few mixed pixels (Chianucci 2016), which makes DCP relatively insensitive to sky condition (Macfarlane et al. 2007a), camera exposure (Macfarlane et al. 2014), image classification (Macfarlane 2011) and actual canopy density (Chianucci 2016).

In addition, the use of a standard camera with a normal (often fixed) lens holds strong potential for widespread use of DCP, making this method implementable to many devices including smartphones (De Bei et al. 2016), micro-cameras, raspberry Pi and other home-made sensors (Kim et al. 2019), and remote trail cameras (Chianucci et al. 2021).

Another strong advantage is that the image acquisition and processing in DCP is simpler than fisheye photography, with the latter requiring many complex and time-consuming steps like controlling camera exposure and gamma correction, correcting lens distortion, setting a circular mask, dividing the image into concentric zenith rings and azimuth segments.
The main limitation in the operational use of DCP is that existing solutions to process canopy images are predominantly tailored for fisheye photography (see my previous article here), whereas open-access tools for DCP are lacking.
For this reason I created a new R package ‘coveR’ to allow full processing of cover images in R. The package allows step-by-step analysis of cover images, while accessing the intermediate image and analysis outputs.

The first version of the package contained five functions which can be used sequentially in a pipeline (see the figure above):
INPUT %>% open_blue() %>% thd_blue() %>% label_gaps() %>% extract_gap() %>% get_canopy()
An additional function canopy_raster() allows to return the output image derived from gap classification.
The latest version of the package contains a single function coveR(), which allows to perform all the processing steps, while optionally export the output image:
INPUT %>% coveR(export.image=TRUE)
Using the functionality of terra package (Hijman 2021), the full processing of each single image is very fast.
The package can be downloaded from R using the following lines of code:
# install.packages(“devtools”)
devtools::install_gitlab(“fchianucci/coveR”)
A similar version coveR2 was also created to be installed directly from CRAN:
install.packages(“coveR2”).
Compared to the other, coveR2 has no reading EXIF functionality (which can be useful for continuous camera acquisition). While existing canopy photography protocols have mostly focused on fisheye photography, the coveR package can effectively support the use of DCP in long-term forest research and monitoring programs.
The final published article in TREES is freely available here
Credits: Carlotta Ferrara and Nicola Puletti contributed to develop coveR package.