• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-11
  • 语言: Matlab
  • 标签: 光栅  

资源简介

生成不同朝向,不同空间频率,不同时间频率,不同颜色的光栅程序

资源截图

代码片段和文件信息

function IMA = grating(mnvarargin)
%   绘制光栅图
%   grating(mn) 绘制光栅图(灰度图),m为灰度值矩阵的行数,n为列数
%   grating(mn‘PARAM1‘val1 ‘PARAM2‘val2 ...) 用成对出现的参数名/参数值
%       指定光栅图的显示属性,可用的参数名/参数值如下:
%       ‘Direction‘  --  设定光栅条纹的方向,其参数值为:
%           ‘horizontal‘ -- 水平条纹
%           ‘Vertical‘   -- 竖直条纹
%           ‘circle‘     -- 同心圆条纹
%           ‘radiated‘   -- 辐射状条纹
%
%       ‘Velocity‘  --  设定角速度,其参数值为标量
%
%       ‘Angle‘  --  设定初始相位角,其参数值为标量
%
%       ‘Color‘  --  设定光栅条纹的颜色,其参数值为:
%           ‘Gray‘ -- 黑白条纹
%           ‘Rgb‘  -- 彩色条纹
%
%   IMA = grating( ... ) 返回光栅图对应的灰度值矩阵
%
%   CopyRight:xiezhh(谢中华)
%   2011.11.26
%   Example:
%       grating(512512‘direction‘‘rad‘‘Velocity‘5000‘color‘‘rgb‘);
%       grating(512512‘Velocity‘20‘maxgrayval‘200)
%       grating(512512‘direction‘‘ver‘‘Velocity‘40)
%       grating(512512‘Velocity‘20‘maxgrayval‘200‘direction‘‘cir‘)

if nargin < 2
    error(‘输入参数过少‘);
end
[DirectionVelAngColMaxGrayVal] = parseInputs(varargin{:});

if strncmpi(Direction‘hor‘3)
    x = (1:m)‘;
    Theta = x*pi/Vel;
    Theta = repmat(Theta[1n]);
elseif strncmpi(Direction‘ver‘3)
    x = 1:n;
    Theta = x*pi/Vel;
    Theta = repmat(Theta[m1]);
elseif strncmpi(Direction‘cir‘3)
    x = repmat((1:n)[m1])-n/2;
    y = repmat((1:m)‘[1n])-m/2;
    D = sqrt(x.^2 + y.^2);
    Theta = D*pi/Vel;
elseif strncmpi(Direction‘rad‘3)
    x = repmat((1:n)[m1])-n/2;
  

评论

共有 条评论