xconv2.m
资源名称:Snakes.rar [点击查看]
上传用户:zlding2008
上传日期:2013-05-13
资源大小:1914k
文件大小:1k
源码类别:
2D图形编程
开发平台:
Matlab
- function Y = xconv2(I,G)
- % function Y = xconv2(I,G)
- % I: the original image
- % G: the mask to be convoluted
- % Y: the convoluted result (by taking fft2, multiply and ifft2)
- %
- % a similar version of the MATLAB conv2(I,G,'same'), 7/10/95
- % implemented by fft instead of doing direct convolution as in conv2
- % the result is almost same , differences are under 1e-10.
- % However, the speed of xconv2 is much faster than conv2 when
- % gaussian kernel has large standard variation.
- % Chenyang Xu and Jerry L. Prince, 7/10/95, 6/17/97
- % Copyright (c) 1995-97 by Chenyang Xu and Jerry L. Prince
- % Image Analysis and Communications Lab, Johns Hopkins University
- %
- [n,m] = size(I);
- [n1,m1] = size(G);
- FI = fft2(I,n+n1-1,m+m1-1); % avoid aliasing
- FG = fft2(G,n+n1-1,m+m1-1);
- FY = FI.*FG;
- YT = real(ifft2(FY));
- nl = floor(n1/2);
- ml = floor(m1/2);
- Y = YT(1+nl:n+nl,1+ml:m+ml);