Learn R Programming

imager (version 0.45.8)

correlate: Correlation/convolution of image by filter

Description

The correlation of image im by filter flt is defined as: \(res(x,y,z) = sum_{i,j,k} im(x + i,y + j,z + k)*flt(i,j,k).\) The convolution of an image img by filter flt is defined to be: \(res(x,y,z) = sum_{i,j,k} img(x-i,y-j,z-k)*flt(i,j,k)\)

Usage

correlate(im, filter, dirichlet = TRUE, normalise = FALSE)

convolve(im, filter, dirichlet = TRUE, normalise = FALSE)

Arguments

im

an image

filter

the correlation kernel.

dirichlet

boundary condition. Dirichlet if true, Neumann if false (default TRUE, Dirichlet)

normalise

compute a normalised correlation (ie. local cosine similarity)

Functions

Examples

Run this code
cimg.limit.openmp()
#Edge filter
filter <- as.cimg(function(x,y) sign(x-5),10,10) 
layout(t(1:2))
#Convolution vs. correlation 
correlate(boats,filter) %>% plot(main="Correlation")
convolve(boats,filter) %>% plot(main="Convolution")

Run the code above in your browser using DataLab