imconv - 2D convolution |
Outm = imconv(Img, mask [, form]) |
Img |
M x N Grayscale (intensity) image in any range. |
mask |
n x n matrix, n odd. This is the spatial convolution kernel. |
Outm |
The convolved matrix (grayscale image). |
form |
determines the size of Outm. It assumes be one of the following values: |
'same' |
Outm has the same size as the original image, M x N. The image is assumed to be 0 outside its bounds. |
'full' |
Outm contains the full convolution, (M+n-1) x (N+n-1). The image is assumed to be 0 outside its bounds. |
'valid' |
Outm contains only the results of the convolution which have been computed within the bounds of Img. Outm will be (M-n+1) x (N-n+1). |
Function imconv performs 2D spatial convolution of a grayscale image and a mask. |
edge(Img) Detects edges in Img, using the sobel gradient estimator, 0.5 threshold level and in both horizontal and vertical directions. |
The other parameters are optional and non-positional. That is, they may be passed to the function by their name. The following example illustrates this. |
initial_dir = PWD; chdir (SIPDIR + 'images'); // Detect horizontal lines h = [ -1 -1 -1 2 2 2 -1 -1 -1] img = imread('gra.jpg'); res = imconv(img,h); imshow(res,[]); // Detect diagonal lines d = [ -1 -1 2 -1 2 -1 2 -1 -1] res = imconv(img,d); imshow(res,[]); chdir(initial_dir); |
The kernel is not rotated by 180 degrees. This is in truth a correlation operator, but in practice only symmetric kernels are used. |
Ricardo Fabbri <rfabbri@if.sc.usp.br>, with help from Scilab Group <Scilab@inria.fr> |
The latest version of the Scilab Image Processing toolbox can be found at |
http://siptoolbox.sourceforge.net |
mkfilter, edge |