资源简介
傅里叶变换积分法-frankotchellapa.m。matlab代码和文献
代码片段和文件信息
% FRANKOTCHELLAPPA - Generates integrable surface from gradients
%
% An implementation of Frankot and Chellappa‘a algorithm for constructing
% an integrable surface from gradient information.
%
% Usage: z = frankotchellappa(dzdxdzdy)
%
% Arguments: dzdx - 2D matrices specifying a grid of gradients of z
% dzdy with respect to x and y.
%
% Returns: z - Inferred surface heights.
% Reference:
%
% Robert T. Frankot and Rama Chellappa
% A Method for Enforcing Integrability in Shape from Shading
% IEEE PAMI Vol 10 No 4 July 1988. pp 439-451
%
% Note this code just implements the surface integration component of the
% paper (Equation 21 in the paper). It does not implement their shape from
% shading algorithm.
% Copyright (c) 2004 Peter Kovesi
% School of Computer Science & Software Engineering
% The University of Western Australia
% http://www.csse.uwa.edu.au/
%
% Permission is hereby granted free of charge to any person obtaining a copy
% of this software and associated documentation files (the “Software“) to deal
% in the Software without restriction subject to the following conditions:
%
% The above copyright notice and this permission notice shall be included in
% all copies or substantial portions of the Software.
%
% The Software is provided “as is“ without warranty of any kind.
% October 2004
function z = frankotchellappa(dzdxdzdy)
if ~all(size(dzdx) == size(dzdy))
error(‘Gradient matrices must match‘);
end
[rowscols] = size(dzdx);
% The following sets up matrices specifying frequencies in the x and y
% directions corresponding to the Fourier transforms of the gradient
% data. They range from -0.5 cycles/pixel to + 0.5 cycles/pixel. The
% fiddly bits in the line below give the appropriate result depending on
% whether there are an even or odd number of rows and columns
[wx wy] = meshgrid(([1:cols]-(fix(cols/2)+1))/(cols-mod(cols2)) ...
([1:rows]-(fix(rows/2)+1))/(rows-mod(rows2)));
% Quadrant shift to put zero frequency at the appropriate edge
wx = ifftshift(wx); wy = ifftshift(wy);
DZDX = fft2(dzdx); % Fourier transforms of gradients
DZDY = fft2(dzdy);
% Integrate in the frequency domain by phase shifting by pi/2 and
% weighting the Fourier coefficients by their frequencies in x and y and
% then dividing by the squared frequency. eps is added to the
% denominator to avoid division by 0.
Z = (-j*wx.*DZDX -j*wy.*DZDY)./(wx.^2 + wy.^2 + eps); % Equation 21
z = real(ifft2(Z)); % Reconstruction
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-10-20 22:48 frankotchellappa\
文件 316158 2011-08-31 16:12 frankotchellappa\Depth Recovery from Noisy Gradient Vector Fields Using Regularization-可使用.pdf
文件 55985 2016-04-04 22:30 frankotchellappa\DepthFromGradient.pdf
目录 0 2016-10-20 22:57 frankotchellappa\frankotchellappa_MatlabCode\
文件 2612 2015-12-05 18:04 frankotchellappa\frankotchellappa_MatlabCode\frankotchellappa.m
文件 6881 2016-04-13 20:29 frankotchellappa\frankotchellappa_MatlabCode\g2sTestSurf.m
文件 1608 2016-10-20 22:46 frankotchellappa\frankotchellappa_MatlabCode\TestFrankotchellappa.m
文件 521 2016-10-20 22:57 frankotchellappa\frankotchellappa_MatlabCode\说明:运行TestFrankotchellappa.m简短说明.txt
- 上一篇:局部二值化
- 下一篇:四元数matlab工具箱2.6版
相关资源
- 基于matlab体绘制技术的医学影像三维
- 离散点云三维重建matlab程序
- matlab 基于点云的三维重建 附带 点云
- 点云的三维重建代码,内容丰富matl
- point3d 点云三维重建
- 三维重建算法 MATLAB 点云数据
- 点云的三维重建 MATLAB代码 带图片以及
- matlab中关于三维重建的源代码,《计
- matlab torr3D reconstruction 工具箱
- 三维重建sfm
- matlab实现spaceCarving三维重构
- matlab sfm三维重建案例
- 基于matlab的三维重建代码147734
- 基于Matlab的三维重建代码
- CT头颅三维重建
- 基于MATLAB的血管三维重建源代码
- 基于体绘制的头部三维重建,并用m
- 三维重建-matlab
- 头部CTmatlab三维重建源代码.rar
- 三维重建 网格交叉点的提取 MATLAB程序
- 血管的三维重建
- matlab的CT图像重建代码
- 三维重建八点算法MATLAB代码
- matlab三维重建程序
- 医学三维重建MATLAB体绘制算法:光线
- matlab实现三维重建
- sfm matlab实现
- 三维重建程序 MATLAB语言
- 医学CT断层图像三维重建的Matlab实现方
- 基于MATLAB的血管三维重建
评论
共有 条评论