⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upconv.m

📁 matlab的steel金字塔小波分解源代码
💻 M
字号:
% RES = upConv(IM, FILT, EDGES, STEP, START, STOP, RES)%% Upsample matrix IM, followed by convolution with matrix FILT.  These% arguments should be 1D or 2D matrices, and IM must be larger (in% both dimensions) than FILT.  The origin of filt% is assumed to be floor(size(filt)/2)+1.%% EDGES is a string determining boundary handling:%    'circular' - Circular convolution%    'reflect1' - Reflect about the edge pixels%    'reflect2' - Reflect, doubling the edge pixels%    'repeat'   - Repeat the edge pixels%    'zero'     - Assume values of zero outside image boundary%    'extend'   - Reflect and invert%    'dont-compute' - Zero output when filter overhangs OUTPUT boundaries%% Upsampling factors are determined by STEP (optional, default=[1 1]),% a 2-vector [y,x].% % The window over which the convolution occurs is specfied by START % (optional, default=[1,1], and STOP (optional, default = % step .* (size(IM) + floor((start-1)./step))).%% RES is an optional result matrix.  The convolution result will be % destructively added into this matrix.  If this argument is passed, the % result matrix will not be returned. DO NOT USE THIS ARGUMENT IF % YOU DO NOT UNDERSTAND WHAT THIS MEANS!!% % NOTE: this operation corresponds to multiplication of a signal% vector by a matrix whose columns contain copies of the time-reversed% (or space-reversed) FILT shifted by multiples of STEP.  See corrDn.m% for the operation corresponding to the transpose of this matrix.% Eero Simoncelli, 6/96.  revised 2/97.function result = upConv(im,filt,edges,step,start,stop,res)%% THIS CODE IS NOT ACTUALLY USED! (MEX FILE IS CALLED INSTEAD)fprintf(1,'WARNING: You should compile the MEX version of "upConv.c",\n         found in the MEX subdirectory of matlabPyrTools, and put it in your matlab path.  It is MUCH faster, and provides more boundary-handling options.\n');%------------------------------------------------------------%% OPTIONAL ARGS:if (exist('edges') == 1)   if (strcmp(edges,'reflect1') ~= 1)    warning('Using REFLECT1 edge-handling (use MEX code for other options).');  endendif (exist('step') ~= 1)  step = [1,1];end	if (exist('start') ~= 1)  start = [1,1];end	% A multiple of stepif (exist('stop') ~= 1)  stop = step .* (floor((start-ones(size(start)))./step)+size(im))end	if ( ceil((stop(1)+1-start(1)) / step(1)) ~= size(im,1) )  error('Bad Y result dimension');endif ( ceil((stop(2)+1-start(2)) / step(2)) ~= size(im,2) )  error('Bad X result dimension');endif (exist('res') ~= 1)  res = zeros(stop-start+1);end	%------------------------------------------------------------tmp = zeros(size(res));tmp(start(1):step(1):stop(1),start(2):step(2):stop(2)) = im;result = rconv2(tmp,filt) + res;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -