matlab函数模版

来源:互联网 发布:温州动车事故 知乎 编辑:程序博客网 时间:2024/04/30 03:17
此函数模版摘自冈萨雷斯数字图像处理MATLAB版,内容包括函数格式,输入参数处理等
 
 

function out=test(in,varargin)
%
%
% just for test
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 输入参数个数检测,重要的函数有nargin nargout  nargchk,

%分别用来返回函数的输入参数个数、输出参数个数、检查参数。
error(nargchk(2,4,nargin));

%检测变量类型,返回类型为字符串类型,如果要比较字符串可以使用

%类似c语言的函数 strcmp函数
classin=class(f);

% 这里要注意的是符号'...',MATLAB中有物理行和逻辑行的定义,如果

%一个逻辑行不能容纳一个物理行,可以使用‘...’来换行

%同样,MATLAB可以使用逻辑表达式来完成严格的逻辑。例如本例中的&


if strcmp( classin,'double') & max( f(:) ) >10 ...
        ~strcmp( varargin{1},'log' )
    f=mat2gray(f);
else
    f=im2double(f);
end

 

%注意参数数组varargin,这个一个数组,要和矩阵相区别开来。

%MATLAB的多参数和变参数输入就是在这里完成的。

method=vararg{1};

switch method
    case 'neg'
        g=imcomplement(f);
    case 'log'
        if length(varargin)==1
            c=1;
        elseif length(varargin)==2
            c=varargin{2};
        elseif length(varargin)==3
            c=varargin{2};
            classin=vararg{3};
        else
            error( 'Incorrect number of inputs for the log option')
        end
        g=imadjust(f,[],[],gam);
    case 'gama'
        if length(varargin)<2
            error(' Not enough inputs for the gama option')
        end
        gam=varargin{2};
        g=imadjust(f,[],[],gama);
    case 'stretch'
        if length(varargin)==1
            m=mean2(f);
            E=4.0;
        elseif length(varargin)==3
            m=varargin{2};
            E=varargin{3};
        else
            error(' Incorrect number of inputs for the strech option');
        end
    otherwise
        error(' unknown enhancement method')
end

g=changeclass(classin,g);

 

注意nargin  nargout  nargchk,和varargin等。以后各种函数的编写就可以按照这个模版进行了。

阅读(339) | 评论(0) | 转发(0) |
0

上一篇:Matlab中交互式IO操作

下一篇:matlab中直方图的绘制方法

相关热门文章
  • 全自动模切机在纸品包装装潢工...
  • vxworks驱动原理——串口驱动...
  • php中3DES加密技术
  • c++中的函数指针和函数对象...
  • C语言函数可变参数详解...
  • 承接自动化测试培训、外包、实...
  • Solaris PowerTOP 1.0 发布
  • For STKMonitor
  • 项目小体会
  • 不用学的汉字输入法 智能H3输...
  • 欢迎qq159135在ChinaUnix博客...
  • 欢迎szhsfw在ChinaUnix博客安...
  • 欢迎seowping在ChinaUnix博客...
  • 欢迎QuickLock在ChinaUnix博客...
  • 3. DB2 Control Center
给主人留下些什么吧!~~