函数intrans
,注意观察函数中实现输入的变量数处理,错误检验代码的使用以及输入图像的类是如何与输出图像的类相匹配,另外,varargin
是一个单元数组,其元素应使用大括号括起。源码内含有详细注释,这里不展开说明。主要实现负片变换、对数变换、gamma变换和对比度拉伸变换。
function g = intrans(f, varargin)
% 亮度变换的M函数,实现负片变换、对数变换、gamma变换和对比度拉伸变换。
% 第三章 3.2.3
% G = INTRANS(F, 'neg') computes thr nrgative of input iamge F.
% 计算输入图像F的负数,即补图像
%
% G = INTRANS(F, 'log', C, CLASS) computes C * log(1 + F) and multiplies
% the result by (positive) constant C. CLASS : the class of output as
% 'unit8'/'uint16'.
% 实现对数转换
%
% G = INTERANS(F, 'gamma', GAM): a gamma transformation on the input iamge
% using parameter GAM.
% 实现gamma转换
%
% G = INTERANS(F, 'stretch', M, E): a contrast-stretching transformation
% using 1./(1 + (M ./(F+eps)).^E). Parameter M [0, 1],default
% M = mean2(im2double(F)), and E default to 4.
% 实现对比度拉伸
% 检测输入参数是否合法
narginchk(2, 4)
% 存