这里好冷。。。。把帖子完善一下吧

grating.m

程序代码:function IMA = grating(m,n,varargin)

% 绘制光栅图

% grating(m,n) 绘制光栅图(灰度图),m为灰度值矩阵的行数,n为列数

% grating(m,n,'PARAM1',val1, 'PARAM2',val2, ...) 用成对出现的参数名/参数值

% 指定光栅图的显示属性,可用的参数名/参数值如下:

% 'Direction' -- 设定光栅条纹的方向,其参数值为:

% 'horizontal' -- 水平条纹

% 'Vertical' -- 竖直条纹

% 'circle' -- 同心圆条纹

% 'radiated' -- 辐射状条纹

%

% 'Velocity' -- 设定角速度,其参数值为标量

%

% 'Angle' -- 设定初始相位角,其参数值为标量

%

% 'Color' -- 设定光栅条纹的颜色,其参数值为:

% 'Gray' -- 黑白条纹

% 'Rgb' -- 彩色条纹

%

% IMA = grating( ... ) 返回光栅图对应的灰度值矩阵

%

% CopyRight:xiezhh(谢中华)

% 2011.11.26

% Example:

% grating(512,512,'direction','rad','Velocity',5000,'color','rgb');

% grating(512,512,'Velocity',20,'maxgrayval',200)

% grating(512,512,'direction','ver','Velocity',40)

% grating(512,512,'Velocity',20,'maxgrayval',200,'direction','cir')

if nargin < 2

error('输入参数过少');

end

[Direction,Vel,Ang,Col,MaxGrayVal] = parseInputs(varargin{:});

if strncmpi(Direction,'hor',3)

x = (1:m)';

Theta = x*pi/Vel;

Theta = repmat(Theta,[1,n]);

elseif strncmpi(Direction,'ver',3)

x = 1:n;

Theta = x*pi/Vel;

Theta = repmat(Theta,[m,1]);

elseif strncmpi(Direction,'cir',3)

x = repmat((1:n),[m,1])-n/2;

y = repmat((1:m)',[1,n])-m/2;

D = sqrt(x.^2 + y.^2);

Theta = D*pi/Vel;

elseif strncmpi(Direction,'rad',3)

x = repmat((1:n),[m,1])-n/2;

y = repmat((1:m)',[1,n])-m/2;

Theta = atan2(y,x);

Theta = Theta*Vel;

else

error('方向参数只能为Horizontal,Vertical,Circle, Radiated 之一');

end

if strncmpi(Col,'gra',3)

I = cos(Theta + Ang);

I = mat2gray(I);

IM = uint8(MaxGrayVal*I);

elseif strncmpi(Col,'rgb',3)

I = zeros(m,n);

IM = uint8(zeros(m,n,3));

for i = 1:3

I = cos(Theta + i*Ang);

IM(:,:,i) = uint8(MaxGrayVal*mat2gray(I));

end

else

error('颜色参数只能为Gray, Rgb 之一');

end

if nargout == 0

figure;

imshow(IM);

else

IMA = IM;

end

%--------------------------------------------------------------------------

% 解析输入参数

%--------------------------------------------------------------------------

function [Direction,Vel,Ang,Col,MaxGrayVal] = parseInputs(varargin)

if mod(nargin,2)~=0

error('输入参数个数不对,应为成对出现');

end

pnames = {'direction','velocity','angle' 'color','maxgrayvalue'};

dflts = {'horizontal',30,pi/3,'gray',255};

[Direction,Vel,Ang,Col,MaxGrayVal] = ...

internal.stats.parseArgs(pnames, dflts, varargin{:});

validateattributes(Direction,{'char'},{'nonempty'},mfilename,'direction');

validateattributes(Vel,{'numeric'},{'scalar','nonempty'},mfilename,'velocity');

validateattributes(Ang,{'numeric'},{'scalar','nonempty'},mfilename,'angle');

validateattributes(Col,{'char'},{'nonempty'},mfilename,'color');

validateattributes(MaxGrayVal,{'numeric'},{'scalar','nonempty'},mfilename,'maxgrayvalue');

matlab 光栅 傅里叶,【图像】【转帖】利用matlab绘制光栅条纹图像相关推荐

  1. matlab对图像进行增强,利用matlab对图像进行增强处理.doc

    利用matlab对图像进行增强处理.doc 郑州轻工业学院课程设计任务书题目利用MATLAB对图像进行增强处理专业.班级电子信息工程07级学号姓名主要内容.基本要求.主要参考资料等:主要内容:在图像形 ...

  2. matlab电磁场图像如何画,利用matlab实现矩形波导电磁场分布图的绘制

    利用matlab实现矩形波导电磁场分布图的绘制 利用 Matlab 实现矩形波导电磁场分布图的绘制(附源程序)通过 Matlab 计算并绘出任意时刻金属矩形波导的主模 TE10 模的电磁场分布图.波导 ...

  3. matlab 随机相位的正弦信号,利用MATLAB绘制随机相位正弦波.docx

    实验二 利用MATLAB绘制随机相位正弦波的均值,方差和自相关函数的图像[实验目的]通过绘制图像,深入理解随机相位正弦波的均值,方差和自相关函数.[实验学时]课外完成[实验准备]1.熟悉随机相位正弦波 ...

  4. 在matlab中实现累乘,如何利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现...

    设计要求 利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现. 1.滤波器指标:过渡带带宽分别为100~300HZ,500~700HZ,阻带允许误差为0.02,通带允许误差为0.01 ...

  5. 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析

    实验二 利用matlab进行系统的时域分析 实验二 利用MATLAB进行系统的时域分析 1.实验目的 在理论学习的基础上,通过本实验熟悉LTI连续时间系统的时域分析方法, 熟悉系统的零输入响应.零状态 ...

  6. matlab系列之(一)——利用matlab实现任意两个多项式相加

    上课时的课程作业,后续我会持续整理出来注释好,供大家共同学习!致谢课程老师! 一.问题描述 输入任意两个多项式,相加后输出结果: 二.问题分析 输入多项式可以采用输入系数矩阵或完整多项式的方式,为了符 ...

  7. matlab求多元函数的极小值,[转载]利用MATLAB求多元函数的极值(2)

    利用MATLAB求多元函数的极值分两种情况,(1)无约束条件:(2)有约束条件. (2)有约束条件下求极小值的方法: 假设多变量非线性函数的数学模型为 min f(x) c(x)<=0 ceq( ...

  8. matlab抓取网页信息,如何利用Matlab抓取网页数据

    如何利用Matlab抓取网页数据 2019-01-01 %朋友需要做金融方面的分析,要求从网站上下载大量的数据,一个一个复制粘贴太费事.我写了一个简单的网络爬虫,主要用到正则表达式,可以自动下载网页源 ...

  9. matlab 画三条曲线,如何利用MATLAB(plot 3函数和fplot3函数)绘制三维曲线?

    文章目录 0 前言 1 plot3函数 1.1 plot3函数的基本用法 1.2 plot3(x,y,z)函数参数的变化形式 1.3 含多组输入参数的plot3函数 1.4 含选项的plot3函数 2 ...

  10. 用matlab编程实现h鲁棒控制算法,利用matlab实现H-infinity鲁棒控制

    利用matlab实现H-infinity鲁棒控制 利用Matlab实现H∞控制 Prof. Dr.-Ing.F.Allgwer Institute for Systems Theory and Aut ...

最新文章

  1. 使用awk获得java进程号,获取进程号并赋值判断进程状态
  2. 完全删除垃圾Q+!!!
  3. osgQt::GLWidget的坑
  4. java面试常见面试问题_Java面试准备:15个Java面试问题
  5. 转载:用大白话聊聊分布式系统
  6. 腾讯被迫下架《怪物猎人世界》;传谷歌将支持 Win10 ;苹果或将复活 MagSafe | 极客头条...
  7. 都说程序员穿衣就是这么丑,你该看看人家硅谷精英
  8. source命令执行SQL脚本文件
  9. Homebrew太慢,如何挂代理加速
  10. paip.c++ gui 库HtmLayout 的优缺点 QT优点
  11. 有道Java_有道词典java版下载-有道词典java豪华版v1.0.7 安卓版 - 极光下载站
  12. Word中如何设置论文中的公式与序号
  13. 逆变器LCL滤波器参数设计(一)
  14. Python 与量化分析
  15. 网购热催生网络模特月入万元多为大学生
  16. MATLA 如何让保存的文件名随着参数的改变而改变
  17. cf869C The Intriguing Obsession
  18. 使用python 模仿mybinlog 命令 二进制分析mysql binlog
  19. 通俗理解数学的七大难题及希尔伯特23个数学问题
  20. 『摆渡车 斜率优化dp及总结』

热门文章

  1. 英语语法——句子成分总结
  2. android lomo设计与实现,拍静物 美图秀秀Android轻松调LOMO风格
  3. 使命召唤手游显示服务器停服,使命召唤手游停服了吗 是手游还是端游
  4. 使用python内置函数进行常规API接口调用
  5. 《 人机交互技术》第三章 交互设备
  6. BZOJ2791 Rendezvous
  7. 2021年3月30日百度笔试题
  8. android 高德地图线路规划,路线规划-Android平台-开发指南-高德地图车机版 | 高德地图API...
  9. 国防科技论坛,一个不错的技术资料分享网站
  10. git回退版本 简单易懂