数字图像处理教程(matlab版)
数字图像处理
浙江大学
数字图像处理教程(matlab版)
/1、图像的读取和显示 /2、图像的点运算
/3、图像的几何变换/4、空间域图像增强 /5、频率域图像增强 /6、彩色图像处理 /7、形态学图像处理 /8、图像分割 /9、特征提取
数字图像处理教程(matlab版)
/1、图像的读取和显示 一、图像的读取
A=imread(FILENAME,FM T)FILENAME 指定图像文件的完整路径和文件名。如果在work工作目录下 只需提供文件名。FMT为图像文件的格式对应的标准扩展名。 I_1=imread('D:\10.06.08nir\TTC10377.BMP');%读入图像 二、图像的写入
imwrite(A,FILENAME,FMT)FILENAME参数指定文件名。FMT为保存文件采用的格式。 imwrite(I6,'nirdilatedisk2TTC10373.bmp');
数字图像处理教程(matlab版)
/1、图像的读取和显示 三、图像的显示
imshow(I,[low high])I为要显示的图像矩阵。[low high]为指定显示灰度图像的灰度范围。 高于high的像素被显示成白色;低于low的像素被显示成黑色;介于 High和low之间的像素被按比例拉伸后显示为各种等级的灰色。 figure;imshow(I6);title('The Main Pass Part of TTC10373');
figure;%创建一个新的窗口 figure;subplot(m,n,p);imshow(I);Subplot(m,n,p)含义为:打开一个有m行n列图像位置的窗口, 并将焦点位于第p个位置上。
数字图像处理教程(matlab版)
/1、图像的读取和显示 四、图像的格式转换
im2bw(I,LEVEL);阈值法从灰度图、RGB图创建二值图。LEVEL为指定的阈值;(0,1)。
rgb2gray;从RGB图创建灰度图,存储类型不变。im2uint8 将图像转换成uint8类型
im2double
将图像转换成double类型
数字图像处理教程(matlab版)
/2、图像的点运算一、图像直方图 灰度直方图描述了一副图像的灰度级统计信息,主要应用于图像分 割和图像灰度变换等处理过程中。从数学角度来说,图像直方图描述图 像各个灰度级的统计特性,它是图像灰度值的函数,统计一幅图像中各 个灰度级出现的次数或概率。归一化直方图可以直接反映不同灰度级出 现的比率。横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各 个灰度级别的像素在图像中出现的次数或概率。 图像直方图归一化
imhist(I);%灰度直方图
I=imread(‘red.bmp’);%读入图像 figure;%打开新窗口 [M,N]=size(I);%计算图像大小 [counts,x]=imhist(I,32);%计算有32个小区间的灰度直方图 counts=counts/M/N;%计算归一化灰度直方图各区间的值 stem(x,counts);%绘制归一化直方图
数字图像处理教程(matlab版)
数字图像处理教程(matlab版)
/2、图像的点运算二、灰度的线性变换
DB f DA f A DA f BFa>1时,输出图像的对比度将增大;Fa<1时,输出图像对比度将减小。 Fa=1且Fb非零时,所有像素的灰度值上移或下移,使整个图像更暗或 更亮。Fa<0,暗区变亮,亮区变暗。
数字图像处理教程(matlab版)
数字图像处理教程(matlab版)
数字图像处理教程(matlab版)
/2、图像的点运算三、灰度的对数变换
t c log k s c为尺度比例常数,s为源灰度值,t为变换后的目标灰 度值。k为常数
。灰度的对数变换可以增强一幅图像 中较暗部分的细节,可用来扩展被压缩的高值图像中 的较暗像素。广泛应用于频谱图像的显示中。
Warning:log函数会对输入图像矩阵s中的每个元素进行操作,但仅能处理double类型的矩阵。而从图像文件中得到的 图像矩阵大多是uint8类型的,故需先进行im2double数据类型 转换。
数字图像处理教程(matlab版)
I=imread('nir.bmp');%读入图像 F=fft2(im2double(I));%FFT F=fftshift(F);%FFT频谱平移 F=abs(F); T=log(F+1);%频谱对数变换 figure;imshow(F,[]);title('未经变换的频谱'); figure;imshow(T,[]);title('对数变换后');
数字图像处理教程(matlab版)
/2、图像的点运算三、灰度的Gamma变换
y x esp
其中,x、y的取值范围为[0,1]。esp为补偿系数,r则为Gamma系数。 Gamma变换是根据r的不同取值选择性的增强低灰度区域的对比度 或者高灰度区域的对比度。
数字图像处理教程(matlab版)
J=imadjust(I,[low_in high_in],[low_out high_out],gamma)I=imread('nir.bmp'); figure;imshow(imadjust(I,[],[],0.75)); %gamma=0.5 title('Gamma 0.5');原 NIR Gamma 0.5 图 像
数字图像处理教程(matlab版)
四、灰度阈值变换及二值化
BW=im2bw(I,level);%level为人工设定阈值范围为[0 ,1] thresh=graythresh(I);%自动设定所需的最优化阈值
Gamma 1.5
0 x T f x 255 x T
T为指定阈值
数字图像处理教程(matlab版)
OTSU算法:最大类间方差法自动单阈值分割。 Kapur算法:一维直方图熵阈值算法 niblack算法:局部阈值分割 阈值的计算公式是T = m + k*v,其中m为以该像素点为中心的区域的平 均灰度值,v是该区域的标准差,k是一个系数。 kittlerMet : 表示kittler 最小分类错误(minimum error thresholding)全局二 值化算法。
原 图 像
直 接 阈 值 分 割 0.25