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

---慢慢地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 )   ---   中值滤波;

posted @ 2014-09-09 10:31  Cyrus Ho  阅读(234)  评论(0编辑  收藏  举报