一些基本的Matlab语言
I=imread('图像名.jpg'); #图像需要在matlab的文件下才可导入
figure,imshow(I); #figure表示另开一个新窗口,imshow表示显示I图像
title('x x x'); #在图像上增加一个标题
图像增强
- 每个像素值加100:
J=I+100; - 图像直方图均衡化:
如果是彩色图片,可以用adapthisteq函数,但此函数必须接二维,因此可以用
K(:,:,1)=adapthisteq(I(:,:,1));
K(:,:,2)=adapthisteq(I(:,:,2));
K(:,:,3)=adapthisteq(I(:,:,3));
或也可使用
J=histeq(I);
- 使用函数来改变灰度值
L=double(I);
L=log(L+1)*255/log(256);
图像增强的方法
空间域处理是针对图像的空间域来进行的,分为全局运算、局部运算和逐点运算。
频域处理则是在图像的变换域(Fourier、小波等)上进行。
对比度增强
为了达到对比度增强的目的可以采用灰度变换法或直方图调整法。
灰度变换法有线性变换、对数变换、指数变换。他们的区别在于公式不同而已。线性变换可以整体调高亮度或分色块调高亮度。对数变换有增大低灰度范围,压缩高灰度范围的功能。指数变换相反。
直方图调整法分为均衡化和直方图匹配。
均衡化:将原图像的直方图通过变换函数改为均匀的直方图。这样可以使图片更加清晰。并且规定:当
0
≤
r
≤
1
0\leq r\leq1
0≤r≤1时,变换函数
T
(
r
)
T(r)
T(r)满足
0
≤
T
(
r
)
≤
1
0\leq T (r)\leq1
0≤T(r)≤1。因为输出的灰度值不可以随意乱来,必须在原来的灰度值的范围内。同时
T
(
r
)
T(r)
T(r)也需要是一个单调递增的函数,因为当原来的图像色块灰度值增强时,均衡后的图像色块的灰度值也应增大。
显示直方图的方法为
[c,b]=imhist(I);#c、b分别为纵轴和横轴,b为灰度值,c为该灰度值的频数,imhist为提取图像I中的直方图信息#
t=cumsum(c);#cumsum函数为返回数组不同维数的累加和#
figure,plot(t);#plot为画图函数#
直方图匹配:就是将原图像的直方图修改为预想的直方图函数形状。
下面有一个例子更加清楚