Mercurial > forge
changeset 9669:4d90505c8e50 octave-forge
fftconv2: fix bug due to behaviour of ismatrix, replace tabs per spaces and use print_usage
author | carandraug |
---|---|
date | Tue, 13 Mar 2012 05:13:57 +0000 |
parents | 49dd2f2ed39e |
children | 705c80955ec8 |
files | main/image/inst/fftconv2.m |
diffstat | 1 files changed, 25 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/main/image/inst/fftconv2.m Tue Mar 13 05:07:07 2012 +0000 +++ b/main/image/inst/fftconv2.m Tue Mar 13 05:13:57 2012 +0000 @@ -33,38 +33,36 @@ ## @seealso{conv2} ## @end deftypefn -## Author: Stefan van der Walt <stefan@sun.ac.za> -## Date: 2004 - function X = fftconv2(varargin) if (nargin < 2) - usage("fftconv2(a,b[,shape]) or fftconv2(v1, v2, a, shape)") + print_usage; endif shape = "full"; rowcolumn = 0; - if ((nargin > 2) && ismatrix(varargin{3})) - ## usage: fftconv2(v1, v2, a[, shape]) + if ((nargin > 2) && ismatrix(varargin{3}) && !ischar(varargin{3})) + + ## usage: fftconv2(v1, v2, a[, shape]) - rowcolumn = 1; - v1 = varargin{1}(:)'; - v2 = varargin{2}(:); - orig_a = varargin{3}; - - if (nargin == 4) shape = varargin{4}; endif + rowcolumn = 1; + v1 = varargin{1}(:)'; + v2 = varargin{2}(:); + orig_a = varargin{3}; + + if (nargin == 4) shape = varargin{4}; endif else - ## usage: fftconv2(a, b[, shape]) - - a = varargin{1}; - b = varargin{2}; - if (nargin == 3) shape = varargin{3}; endif + ## usage: fftconv2(a, b[, shape]) + + a = varargin{1}; + b = varargin{2}; + if (nargin == 3) shape = varargin{3}; endif endif if (rowcolumn) - a = fftconv2(orig_a, v2); - b = v1; + a = fftconv2(orig_a, v2); + b = v1; endif ra = rows(a); @@ -78,18 +76,18 @@ X = ifft2(A.*B); if (rowcolumn) - rb = rows(v2); - ra = rows(orig_a); - cb = columns(v1); - ca = columns(orig_a); + rb = rows(v2); + ra = rows(orig_a); + cb = columns(v1); + ca = columns(orig_a); endif if strcmp(shape,"same") - r_top = ceil((rb + 1) / 2); - c_top = ceil((cb + 1) / 2); - X = X(r_top:r_top + ra - 1, c_top:c_top + ca - 1); + r_top = ceil((rb + 1) / 2); + c_top = ceil((cb + 1) / 2); + X = X(r_top:r_top + ra - 1, c_top:c_top + ca - 1); elseif strcmp(shape, "valid") - X = X(rb:ra, cb:ca); + X = X(rb:ra, cb:ca); endif endfunction @@ -130,5 +128,3 @@ %! %! ## Convolve the cross with the blob %! imshow(real(fftconv2(z, b, 'same')*N)) - -