图像处理中常用的MATLAB函数
1.灰度直方图
imhist()
用于直接显示灰度直方图[counts,x]=imhist()
其中的counts参数保存了落入每个灰度级的像素个数
2. 归一化直方图:点线型统计图, 且各项参数的和为100%
stem(x,counts)
用于绘制归一化直方图(离散针状图)counts/总像素数目
:计算归一化直方图的各项参数
[M,N]=size(I); % 计算图像的大小
[counts,x]=imhist(I,32); % 统计32个像素级的分布情况, 但不绘制出具体图像
counts=counts/M/N; % 计算各个区间的像素占比
stem(x,counts); % 绘制归一化直方图
3. 灰度非线性变换
对数变换:增强较暗并扩展压缩区,用于频谱图像
I=im2double(rgb2gray(I)); % 把图像的数值范围[0,255]修改为[0,1]
F=fft2(I); % 进行傅里叶变换
F=fftshift(F); % 对傅里叶变换后的图像进行象限转换
F=abs(F); % 求傅里叶变换的模
T=log(F+1); % 对傅里叶变换的幅值进行转换
imshow(T,[]); % 对于大于1的数值, 可利用[]将所有数值映射在[0,1]范围内
伽马变换 y=(x+esp)^r
imadjust(I,[],[],gamma)
[]表示默认值为[0,1], 其中gamma可取[0,1]内的任何数
4. 阈值变换
BW=im2bw(I,level)
经验确定分割点阈值, BW为二值化后的图像, 且level:[0,1] = x/256graythresh(I)
thresh直接确定分割点阈值
5. 直方图均衡化:合并一些像素灰度值, 导致图像对比度增大
histeq()
效果还可以adapthisteq()
效果很牛逼