您的位置:首页 > 其它

统计分析学习笔记——图像处理中的统计应用案例

2013-11-09 10:14 796 查看
声明:本文是谢中华先生《Matlab统计分析与应用:40个案例分析》学习笔记!

一、基于图像资料的数据重建与拟合

1、问题描述:有一幅某函数RGB图像,只知道函数带有待定系数的表达式。需要根据此图像重建绘图的原数据,并求出函数方程。

2、问题分解:

a 读入图像数据:imread();

b 去除坐标框:由于matlab显示图像的坐标框是黑色的,而绘图区域的背景是白色的,所以可以分别对图像红色灰度矩阵的每行(列)相加,求其最小和次小的行
(列),即可定位上下(左右)边框的位置;

c 提取曲线上的坐标点:根据灰度值定位曲线的像素点;

d 将像素坐标转换为实际坐标:首先像素点坐标转化为图像中的距离坐标,在转化为图像所用的直角坐标系坐标。

e 拟合曲线:nlinfit,使用自定义函数。

二、基于K均值聚类的图像分割

1、问题描述:对于给定的灰度图像,将前景图像和背景图像分割。

2、问题分解:

a 读入图像:

b 聚类:将图像拉伸成向量;根据前景和背景的灰度值设置初始聚类中心,聚类数为2,调用kmeans函数;

c 背景分离:由聚类结果求出前景点的索引,再转化为图像矩阵的坐标,imshow即可。

3、问题讨论:如果分割RGB图像,其聚类的坐标应该是RGB的值,所以要将图像数据转化为m*n行、3列的矩阵。因为我们是对灰度值进行聚类,而不是坐标。

三、基于中位数算法的运动目标检测

1、问题描述:有一段背景不变,目标物移动的avi视频,240*360,共80帧。要求对每一帧挖出目标图像。

2、问题分解:

a 载入视频数据:可以使用aviread函数,mmreader类或VideoReader类(推荐)。如果调用结果有解码器的错误,可以下
载解码器 thunder://QUFodHRwOi8vNjcuZHVvdGUuY29tLmNuL2FsbGluLmV4ZVpa或者用记事本保存代码:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32] 

"vidc.cvid"="iccvid.dll" 

"vidc.iv31"="ir32_32.dll" 

"vidc.iv32"="ir32_32.dll" 

"vidc.iv41"="ir41_32.ax" 

"vidc.iv50"="ir50_32.dll"

保存为xx.reg,双击运行即可。

          b 数据类型转换:将视频数据转换为80行,240*360*3列的矩阵I。其每一行对应同一帧图像上所有像素点的RGB值,每一列对应不同帧图像上相同位置像素点的
R(G或B)值。

  c 求I的列的中位数:相当于确定背景。

  d 背景分割:用原始的帧减去背景图像即可。

四、基于贝叶斯判别的手写体数字识别

1、问题描述:50幅手写阿拉伯数字图片作为训练样本,30幅手写阿拉伯数字图片作为检验样本。需要训练NaiveBayes分类器对检验样本分类,并求出误判样本和误判率。

2、问题分解:

a 批量载入训练样本和检验:可以使用eval语句做循环,也可以使用交互式对话框uigetfile。

b 图片标准话:对所有图片做反色处理;使用im2bw转化为2值图像;截取二值图像中包含数字的最大区域;将图像resize为16*16。

c 创建朴素贝叶斯分类器:ObjBayes=NaiveBayes.fit(training,group,'Distribution','mn');

d 对训练样本和检验样本分类:pre0=ObjBayes.predict(training);

pre1=ObjBayes.predict(test);

e 判别效果统计:统计误判样本,计算误判率。

五、基于主成分分析的图像压缩与重建

1、问题描述:对于跟定的256*320 RGB图像,按一定的比率做PCA有损压缩。

2、问题分解:

a 读图像数据:将三维矩阵元素转化为0~1的双精度double。

b 图像分块:将图像分为16*20的小块,每个小块按列拉长为16*16*3=768的行向量。最后得到320*768的矩阵X。一般在图像中,每一块上相邻像素点的颜色灰
度值有相关性,故X的列与列之间有相关性。由此可以对列(变量)做降维。

c 线性PCA:根据指定的压缩比例选取合适数量的主元,调用pcares。

d 重建:将pcares返回的重建矩阵xpr转换为图像,并显示。

六、体会:

Matlab是基于矩阵运算的面向对象的可视化高级语言,对统计分析和图像处理有天然优势。利用矩阵的基本运算提高程序的编写与运行效率,今后需加强。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐