matlab 光栅 傅里叶,【图像】【转帖】利用matlab绘制光栅条纹图像
这里好冷。。。。把帖子完善一下吧
:
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绘制光栅条纹图像相关推荐
- matlab对图像进行增强,利用matlab对图像进行增强处理.doc
利用matlab对图像进行增强处理.doc 郑州轻工业学院课程设计任务书题目利用MATLAB对图像进行增强处理专业.班级电子信息工程07级学号姓名主要内容.基本要求.主要参考资料等:主要内容:在图像形 ...
- matlab电磁场图像如何画,利用matlab实现矩形波导电磁场分布图的绘制
利用matlab实现矩形波导电磁场分布图的绘制 利用 Matlab 实现矩形波导电磁场分布图的绘制(附源程序)通过 Matlab 计算并绘出任意时刻金属矩形波导的主模 TE10 模的电磁场分布图.波导 ...
- matlab 随机相位的正弦信号,利用MATLAB绘制随机相位正弦波.docx
实验二 利用MATLAB绘制随机相位正弦波的均值,方差和自相关函数的图像[实验目的]通过绘制图像,深入理解随机相位正弦波的均值,方差和自相关函数.[实验学时]课外完成[实验准备]1.熟悉随机相位正弦波 ...
- 在matlab中实现累乘,如何利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现...
设计要求 利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现. 1.滤波器指标:过渡带带宽分别为100~300HZ,500~700HZ,阻带允许误差为0.02,通带允许误差为0.01 ...
- 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析
实验二 利用matlab进行系统的时域分析 实验二 利用MATLAB进行系统的时域分析 1.实验目的 在理论学习的基础上,通过本实验熟悉LTI连续时间系统的时域分析方法, 熟悉系统的零输入响应.零状态 ...
- matlab系列之(一)——利用matlab实现任意两个多项式相加
上课时的课程作业,后续我会持续整理出来注释好,供大家共同学习!致谢课程老师! 一.问题描述 输入任意两个多项式,相加后输出结果: 二.问题分析 输入多项式可以采用输入系数矩阵或完整多项式的方式,为了符 ...
- matlab求多元函数的极小值,[转载]利用MATLAB求多元函数的极值(2)
利用MATLAB求多元函数的极值分两种情况,(1)无约束条件:(2)有约束条件. (2)有约束条件下求极小值的方法: 假设多变量非线性函数的数学模型为 min f(x) c(x)<=0 ceq( ...
- matlab抓取网页信息,如何利用Matlab抓取网页数据
如何利用Matlab抓取网页数据 2019-01-01 %朋友需要做金融方面的分析,要求从网站上下载大量的数据,一个一个复制粘贴太费事.我写了一个简单的网络爬虫,主要用到正则表达式,可以自动下载网页源 ...
- matlab 画三条曲线,如何利用MATLAB(plot 3函数和fplot3函数)绘制三维曲线?
文章目录 0 前言 1 plot3函数 1.1 plot3函数的基本用法 1.2 plot3(x,y,z)函数参数的变化形式 1.3 含多组输入参数的plot3函数 1.4 含选项的plot3函数 2 ...
- 用matlab编程实现h鲁棒控制算法,利用matlab实现H-infinity鲁棒控制
利用matlab实现H-infinity鲁棒控制 利用Matlab实现H∞控制 Prof. Dr.-Ing.F.Allgwer Institute for Systems Theory and Aut ...
最新文章
- 使用awk获得java进程号,获取进程号并赋值判断进程状态
- 完全删除垃圾Q+!!!
- osgQt::GLWidget的坑
- java面试常见面试问题_Java面试准备:15个Java面试问题
- 转载:用大白话聊聊分布式系统
- 腾讯被迫下架《怪物猎人世界》;传谷歌将支持 Win10 ;苹果或将复活 MagSafe | 极客头条...
- 都说程序员穿衣就是这么丑,你该看看人家硅谷精英
- source命令执行SQL脚本文件
- Homebrew太慢,如何挂代理加速
- paip.c++ gui 库HtmLayout 的优缺点 QT优点
- 有道Java_有道词典java版下载-有道词典java豪华版v1.0.7 安卓版 - 极光下载站
- Word中如何设置论文中的公式与序号
- 逆变器LCL滤波器参数设计(一)
- Python 与量化分析
- 网购热催生网络模特月入万元多为大学生
- MATLA 如何让保存的文件名随着参数的改变而改变
- cf869C The Intriguing Obsession
- 使用python 模仿mybinlog 命令 二进制分析mysql binlog
- 通俗理解数学的七大难题及希尔伯特23个数学问题
- 『摆渡车 斜率优化dp及总结』
热门文章
- 英语语法——句子成分总结
- android lomo设计与实现,拍静物 美图秀秀Android轻松调LOMO风格
- 使命召唤手游显示服务器停服,使命召唤手游停服了吗 是手游还是端游
- 使用python内置函数进行常规API接口调用
- 《 人机交互技术》第三章 交互设备
- BZOJ2791 Rendezvous
- 2021年3月30日百度笔试题
- android 高德地图线路规划,路线规划-Android平台-开发指南-高德地图车机版 | 高德地图API...
- 国防科技论坛,一个不错的技术资料分享网站
- git回退版本 简单易懂