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

📄 interpfields.m

📁 MATLAB Functions for Multiple View Geometry
💻 M
字号:
% INTERPFIELDS  - Interpolates lines on a field extracted from a video frame.%% Function to interpolate intermediate lines on odd or even% fields extracted from a video frame%% Usage:   intp = interpfields(field, oddeven);%%% Arguments:   field - the field to be interpolated%              oddeven - optional flag 1/0 indicating whether the field%                        is formed from the odd rows (default is 1)%% Returns:     interp - an image with extra rows inserted. These rows are%                       obtained by averaging the rows above and below.%                       A future enhancement might be to use bicubic%                       interpolation.% Copyright (c) 2000-2005 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.% May 2000   - original version% March 2004 - modified to use bicubic interpolation and to work for%              colour images% August 2004 - Corrected No of rows to interpolate to avoid NaNs in the result% August 2005 - Made compatible under Octavefunction intp = interpfields(field, oddeven);    v = version; Octave = v(1)<'5';  % Crude Octave test        if nargin==2	if strcmp(oddeven, 'odd')	    odd = 1;	else	    odd = 0;	end    else       % assume odd field	odd = 1;    end        field = double(field);    if ndims(field) == 3	[rows, cols, depth] = size(field);    elseif ndims(field) == 2	[rows, cols] = size(field);	depth = 1;    else	error('can only interpolate greyscale or colour images');    end        intp = zeros(2*rows-1,cols,depth);           [x,y]   = meshgrid(1:cols,1:2:2*rows-1); % coords at which data is defined.    [xi,yi] = meshgrid(1:cols,1:2*rows-1);   % coords where we want data defined.        for d = 1:depth	if Octave	    intp(:,:,d) = interp2(x,y,field(:,:,d),xi,yi,'linear');    	else	    intp(:,:,d) = interp2(x,y,field(:,:,d),xi,yi,'bicubic');    	end    end        if odd                             % pad an extra row at the bottom	intp = [intp;  field(rows,:,:)];    else	intp = [field(1,:,:); intp ];  % pad an extra row at the top    end

⌨️ 快捷键说明

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