您的位置:首页 > 其它

《数字图像处理》--冈萨雷斯(第三章)

2017-09-10 10:30 274 查看

亮度变换与空间滤波

亮度变换函数

​ s = T(r)

​ r表示图像f中相应点(x,y)的亮度,s表示图像g中相依点(x,y)的亮度

函数imadjust

​ 此函数是对灰度图像进行亮度转换的基本IPT工具

​ 语法:

g = imadjust(f,[low_in high_in]n [low_out high_out], gamma)


对数和对比度拉伸变换

g  = c*log(1 + double(f))


>>g = im2uint8(mat2gray(log(1 + double(f))));


亮度变换的一些M函数

​ g = changeclass(newclass, f)

亮度标度的M函数

g = gscale(f, method, low, high)


​ f 是将被标度的图像,method的有效值为 ‘full8’ 和 ‘full16’,若使用这两个有效 值其中一个,则可以在两种表换中省略参数low 和high,method 的第三个有效值为 ‘minmax’ 此时必须给出 low与high 在范围 [0, 1]内

直方图处理与函数绘图

生成并绘制直方图

​ h(rk) = nk

​ 归一化直方图:

​ p(rk) = h(rk)n = nkn

imhist函数

h = imhist(f, b)


​ 其中, f 为输入图像, h为其直方图 h(rk) ,b 是用于形式直方图的“收集箱”的个数

函数
bar(horz, v, width)


​ v 是一个行向量, 它包含将被绘制的点;horz 是一个与v有着相同维数的向量,它包含水平标度值得增量;width 是一个值在 0 ~ 1 之间的数




函数
stem(horz, v, 'color_linestyle_marker', 'fill')


​ 生成一幅杆状图,类似于条形图

函数
plot(horz, v, 'color_linestyle_market')


​ 该函数将一组点用直线连起来

直方图均衡化

​ 通常使用直方图并调用直方图均衡化技术来处理离散灰度级

g = histeq(f, nlev)


​ f 为输入图像,nlev 是为输出图像指定的灰度级数

直方图匹配(规定化)

g = histeq(f, hspec)


​ f 为输入图像,hspec 为指定的直方图,g 为输出图像,其直方图近似于指 定的 直方图hspec

空间滤波

线性空间滤波

​ 一维相关和卷积操作的不同是:卷积颠倒函数顺序会产生相同的结果,而一维相关不同;但是若函数对称移动,则卷积和相关操作会产生相同的结果。

​ 使用旋转后的滤波掩模时,卷积就是相关

imfilter

​ 工具箱使用该函数来实现线性空间滤波

g = imfilter(f, w, filtering_mode, boundary_options, size_options)


​ 其中,f 是输入图像、w为滤波掩模、g为滤波结果

​ filtering_mode 用于指定在滤波过程中是使用相关还是卷积

​ boundart_options 用于处理边界充零问题,边界的大小由滤波器的大小确定

​ size_options 可以是 ‘same’ 或 ‘full’

两种使用卷积运算的方法

​ 一、
g = imfilter(f, w, 'conv', 'replicate')


​ 二、
rot90(w, 2)
将w旋转180。

​ 然后使用
imfilter(f, w, 'replicate')




非线性空间滤波

​ 非线性空间滤波基于非线性操作,这种操作包含了一个邻域的像素。

colfilt函数

g = colfilt(f, [m n], 'sliding', @fun, parameters)


​ @成为函数句柄,它是一种MATLAB数据类型,它包含有引用函数用到的一些信息。

padarray函数

fp = padarray(f, [r c], method, direction)


图像处理工具箱的标准空间滤波器



线性空间滤波器

fspecial函数

w = fspecial('type', parameters)


​ type为滤波器类型,parameters 进一步定义了指定的滤波器

​ 使用imfilter滤波后的输出图像与输入图像是同类图像,所以负值将被截掉,

​ 因此可以通过在滤波前将f转换为double类图像

非线性空间滤波器

ordfilt2函数

​ 该函数可以生成 排序滤波器

g = ordfilt2(f, order, domain)


medfilt2函数

​ 利用函数medfilt2进行中值滤波

​ 中值滤波是降低图像椒盐噪声的有效工具

​ 使用默认设置的中值滤波很好地降低了噪声,但在图片边界可能会出现黑色的斑点,跟图像本身的属性有关,此时用函数 symmetric来减弱即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  图像处理 图形