数字图像:以数字格式存储图像数据,可以用矩阵或数组来描述
数字图像处理:利用计算机对图像进行去除噪声,增强,复原,分割,提取特征等理论,方法和技术
计算机视觉:图像到人
图像处理:图像到图像
计算机图形学:数据到图像
模式识别:图像到符号
实验一 图像打开、保存与显示
运用Matlab图像处理工具箱中的imread函数分别读入灰度图像、二值图像、RGB图像和索引图像,观察相应的图像矩阵,并运用imshow函数显示相应图像。
clear;
clc;
img1=imread(‘pout.tif’);
figure(1);
imshow(img1);
title(‘灰度图像’);
img2=imread(‘circles.png’);
figure(2);
imshow(img2);
title(‘二值图像’);
img3=imread(‘blobs.png’);
figure(3);
imshow(img3);
title(‘二值图像’);
img4=imread(‘football.jpg’);
figure(4);
imshow(img4);
title(‘RGB图像’);
[I_suoyin, colormap]=imread(‘trees.tif’);
figure(5);
imshow(I_suoyin, colormap);
title(‘索引图像’);
R=img4(:, :, 1);
G=img4(:, :, 2);
B=img4(:, :, 3);
subplot(2, 2, 1), imshow(img4), title(‘原始图像’);
subplot(2, 2, 2), imshow®, title(‘R层图像’);
subplot(2, 2, 3), imshow(G), title(‘G层图像’);
subplot(2, 2, 4), imshow(B), title(‘B层图像’);
I=imread(‘pout.tif’);
subplot(1, 3, 1);
imshow(I);
title(‘原始图像’);
G=imnoise(I, ‘gaussian’);
subplot(1, 3, 2);
imshow(G);
title(‘高斯噪声图像’);
imwrite(G, ‘Gpout.tif’);
J=imnoise(I, ‘salt & pepper’, 0.05);
subplot(1, 3, 3);imshow(J);
title(‘椒盐噪声图像’);
imwrite(J, ‘Jpout.tif’);
采样
将空间上连续的图像变换成离散点的操作(离散化)称为采样。
量化
将像素灰度转换成离散的整数值的过程叫量化。
对于缓变的图像,应该细量化,粗采样,避免假轮廓
对于细节丰富的图像,应细采样,粗量化,以避免模糊
黑白图像
每个像素只能是黑和白,也称二值图像
灰度图像
每个像素由一个量化的灰度值来描述的图像
索引图像
多了一个调色板(256行x3列),分别表示红绿蓝3种颜色分量的深浅程度
RGB图像
每个像素由R,G,B三原色像素构成的图像,其中RGB是由不同的灰度级来描述的
BMP文件格式
windows操作系统的标准文件格式
大部分是不压缩的形式,它本身还是支持图像压缩的
TIF图像文件格式
文件格式复杂,是目前流行的图像文件交换标准之一,考虑了扩展性,方便性和可修改性
GIF图像文件格式
在不同的系统平台上交流和传输图像,图像最大不能超过64M,颜色最多为256色,不仅是一张静止的图片,也可以是动画,并且支持透明背景图像
PCX文件
PCX支持256种颜色,不如TIF等格式功能强,但结构较简单,存取速度快,压缩适中,适合一般软件的使用
JPEG图像格式
目前各类浏览器均支持JPEG这种图像格式,JPEG格式支持24位颜色,JPEG压缩为有损压缩
RGB模型(计算颜色模型)
HSI模型(视觉颜色模型)
HSV模型
工业颜色模型:印刷用的CMYK,电视系统用的YUV,颜色图像压缩用的YCbCr模型
实验二 图像灰度直方图统计
1计算并绘制原始pout图像的灰度直方图;
2根据离散累计分布函数,对原始灰度直方图进行均衡化处理,绘制均衡化后的灰度直方图;
3生成均衡化处理后的新图像,显示并保存。
4比较原始pout图像和新图像的对比度。
clc;
clear;
grayimage=imread(‘pout.tif’);
subplot(2,2,1);imshow(grayimage);
title(‘原始图像’);
[m,n]=size(grayimage);
gp=zeros(1,256);
for i=1:256
gp(i)=length(find(grayimage==(i-1)))/(m*n);
end
subplot(2,2,2);
bar(0:255, gp);
title(‘原始图像的灰度直方图’);
xlabel(‘灰度值’);ylabel(‘出现概率’);
S1=zeros(1,256);S2=zeros(1,256);
temp=0;
for i=1:256
temp=temp+gp(i);
S1(i)=temp;
end
S2=round(S1x255);newgp=zeros(1,256);
for i=1:256
newgp(i)=sum(gp(find(S2==(i-1))));
end
subplot(2,2,3);
bar(0:255, newgp);
title(‘均衡化后的灰度直方图’);
xlabel(‘灰度值’);
ylabel(‘出现概率’);
newgrayimage=grayimage;
for i=1:256
newgrayimage(find(grayimage==(i-1)))=S2(i);
end
subplot(2,2,4);
imshow(newgrayimage);
title(‘均衡化后的图像’);
imwrite(newgrayimage,‘newpout.tif’);
直方图用图形表示了图像的每个亮度级别的像素数量,展现了像素在图像中的分布情况。
直方图均衡化
灰度变化
灰度线形变化(增强对比度)
图像平滑
均值滤波
中值滤波(椒盐噪声)
图像锐化
灰度阈值分割法
区域生长法
把具有相似性质的像素逐渐结合起来生成区域
区域分裂合并法
按照某种一致性准则,不断地分裂或合并区域。当一个区域不满足一致性准则时,将其分裂成大小相等且互不重叠的四个子区域。当任意两个相邻区域满足一致性准则时,可将其合并为一个大区域。
二值图像的轮廓提取——掏空内部点法
边缘检测
Roberts 算子提取边缘的结果边缘较粗,边缘定位不很准确;Sobel算子和Prewitt 算子对边缘的定位准确了一些,而采用拉普拉斯高斯算子进行边缘提取的结果要明显优于前三种算子,边缘比较完整,位置比较准确;Canny 算子提取的边缘最为完整,边缘的连续性很好,效果优于以上其他算子。
几种基于微分的经典边缘提取算子共同的优点是计算简单、速度较快;缺点是对噪声的干扰都比较敏感。
模板匹配
是指用一个较小的图像(也称模板图像)与原图像进行比较,来确定在原图像中是否存在与该模板图像相同或相似的区域,若该区域存在,可确定其位置并提取该区域。
几何变换
imresize函数对图像进行比例缩放变换
imrotate函数对图像进行旋转变换
图像压缩编码
算法编码效率
算数编码
行程编码(主要用于二值图像)