您的位置:首页 > 编程语言 > MATLAB

[DIP] 数字图像处理 (MATLAB) CH03

2014-09-09 10:31 148 查看
---慢慢地go through冈萨雷斯的DIP和配套的matlab,记下一些零碎的知识点给自己以后复习。

DIP CH03 亮度变换与空间滤波

矩阵A=[1,2,3;4,5,6]

sum(A,1)对A的第一个维度求和,sum(A,2)对A的第二个维度求和;

prod(A,n),max(A,n),min(A,n),mean(A,n)类似,分别对A的第n个维度求乘积,最大值,最小值和平均值;

默认n=1,所以要对矩阵A所有元素求和,可以sum(sum(A)),相当于sum(sum(A,1),2),当然也可以直接sum(A(:));

[val,idx] = max(A(:))返回A最大值和位置,min类似;

std(A)求标准差用,std(A,Flag,Dim),Dim相当于前边所说的n,默认Flag=0,计算标准差时,均方取平均用N-1去除(N是样本个数),Flag=1时,均方取平均用N去除;

亮度变换

g = imadjust( f, [low_in,high_in], [low_out,high_out], gamma ) --- gamma默认为1,表示线性映射,注意输入输出均在0到1之间,high_out可以比low_out小,表示亮度反转;

g = imcomplement( f ) --- 亮度反转;

直方图

h = imhist( f ) --- 直方图显示,还有其他显示设置方式;

g = histeq( f, 256 ) --- 直方图均衡化,第二个参数是灰度级别最大可能数量,默认为64,通常我们设为256(8-bit),g是直方图均衡化后的图像,用imhist(g)来查看效果;

--- numel(f)为f元素总数(f为图像就得到像素总数了);

           --- hnorm = imhist(f)./numel(f)得到归一化直方图(各亮度出现频率), 向量;

--- cdf = cumsum(hnorm),cumsum()对向量实现元素累加,即 cdf(n) = sum(hnorm(1:n)),这样就可以得到亮度转换函数;

g = histeq( f, hspec ) --- 直方图规定化/直方图匹配,hspec是指定的直方图,行向量;

线性空间滤波

w = fspecial( 'type', paras ) --- 构造掩模,常用type有average,gaussian,laplacian,prewitt,soble,而paras则为设置参数,可设置掩模尺寸和分布参数;

g = imfilter( f, w, '**' ) --- 对图像f用掩模w进行滤波操作,**是处理边界方式,常见方式有replicate,symmetric,默认使用0填充;

非线性空间滤波

g = medfilt2( f ) --- 中值滤波;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: