数据挖掘竞赛赛前指导-MATLAB处理图像杨坦_第1页
数据挖掘竞赛赛前指导-MATLAB处理图像杨坦_第2页
数据挖掘竞赛赛前指导-MATLAB处理图像杨坦_第3页
数据挖掘竞赛赛前指导-MATLAB处理图像杨坦_第4页
数据挖掘竞赛赛前指导-MATLAB处理图像杨坦_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、“泰迪杯”全国数据挖掘挑战赛组委会第四届挑战赛赛前指导 “泰迪杯”全国数据挖掘挑战赛组委会用MATLAB处理图像 杨坦 2021年10月14日 “泰迪杯”全国数据挖掘挑战赛组委会 上午大家的问题l山东交通学院问题:l 关于编程语言,C/C+可不可以?l 学生需要完成的编码工作大概有多少l五邑大学:对数据库的建立有没有什么建议2“泰迪杯”全国数据挖掘挑战赛组委会 讲座内容图像中的字符分割示例3MATLAB图像处理简介“泰迪杯”全国数据挖掘挑战赛组委会 数字图像的基本概念l数字图像表示为一个数据矩阵l注意原点的位置(京东

2、方面有特别的规定)4“泰迪杯”全国数据挖掘挑战赛组委会 数字图像的基本概念lMatlab中的数组下标从1开始,故在Matlab中lf(m,n)存储了第m行、第n列的像素的信息51,11,21,2,12,22,1,2, , NNMMM Nfffffff m nfff“泰迪杯”全国数据挖掘挑战赛组委会 数字图像的基本概念l图像分类l灰度图像:保存每个点(像素)的亮度(光的强弱)信息,通常将白到黑划分为256个等级,使用8位二进制证书保存l对应于一个二维数组f(M,N)l彩色图像:保存每个点的色彩信息l对应于一个三维数组f(M,N,3)lf(i,j

3、,1), f(i,j,2), f(i,j,3)对应于像素i,j的R,G,B数据l二值图像:对应一个二维的逻辑数组l灰度图像也可能使用RGB格式来保存l当R、G、B三个分量的值相同时,色彩为中性灰6“泰迪杯”全国数据挖掘挑战赛组委会 图像的读入lA=imread(filename.fmt)l该函数把filename中的图像读到变量A中lf1 = imread(rose.tif);lf2 = imread(ocr.jpg);l保存在MATLAB工作路径下的图像可像上面这样根据文件名读入;也可以指定读取路径lf3 = imread(C:ray.jpg);lMATLAB的路径

4、设置7“泰迪杯”全国数据挖掘挑战赛组委会 图像的读入l查看图像类型(灰度/真彩色)lsize()lsize函数专门用来获得矩阵的大小信息lx = 1 2 3,则size(x)为1 3lx =ones(3,4),则size(x)为3 4l获得图像大小参数lm,n=size(f)lm为行数,n为列数l二值图像要查看数据的类型8“泰迪杯”全国数据挖掘挑战赛组委会 图像的显示limshow():在窗口中显示图像limshow是图像(image) 和显示 (show)的缩合,包括灰阶调整功能的图像显示。l对于RGB彩色图像,采用格式imshow(f)l

5、灰度图像基本语法:imshow(f,G)l用G级离散灰度级显示灰度图象fl若省略N,默认用256级灰度显示limshow(f, ) 自动调整灰度最大化动态范围lfigure:新建图像窗口,否则会覆盖掉之前的显示内容9“泰迪杯”全国数据挖掘挑战赛组委会 图像像素的查看limpixel:返回选中像素或像素集的数据值。用户可以直接将该像素坐标作为该函数的输入,或者用鼠标选中像素。lx=impixel limprofile:沿着图像中一条折线计算并绘制强度图10“泰迪杯”全国数据挖掘挑战赛组委会 图像的写入(保存)l格式:imwrite(f,file

6、name,fmt)把图像写入图形文件中l例1:imwrite(f,patient10_run1,tif)l例2:imwrite(f,patient10_run1.tif)l把图像f写入文件filename中lfilename指明文件名lfmt指明文件格式lf既可以是一个灰度图,也可以是一个真彩色图像lfilename中未指定路径,则保存至当前工作目录11“泰迪杯”全国数据挖掘挑战赛组委会 图像的数据类型l图像通常按照8位无符号整数的格式保存,读入后为无符号整数类型,所能够进行的运算受到限制。l使用double函数转换为双精度浮点型可以方便后续处理l若图像是double

7、类,则使用imshow显示前应归一化亮度到0,1,否则可能会造成显示问题。 A=imread(ocr.jpg); B= double(A); imshow(B)lmat2gray函数可以将任意类型的矩阵归一化到0,112“泰迪杯”全国数据挖掘挑战赛组委会 图像的数据类型l二值图像:一个逻辑数组,每个象素只能取0或1l利用logical函数可以把数值数组转换为二值数组:B=logical(A)l若A中除了有1和0之外的其他元素,则使用logical可将所有非零的量变换为逻辑1,将所有的0值变换为逻辑0limhist(A)lB=A125l以125为阈值进行二值化处理13“

8、泰迪杯”全国数据挖掘挑战赛组委会 二值化:图像分割lg=im2bw(f,T)l阈值处理:f中亮度小于T的像素在g中取值为0,其余为1l输出为logical类l无论f的类型,T的范围必须在0,1内,默认为0.5l对整型数据,系统会自动根据f的类型作相应的归一化处理l对double类数据,必须首先做归一化处理14“泰迪杯”全国数据挖掘挑战赛组委会 向量索引l数组的值用方括号括起来,各值间用空格或逗号隔开:l v=1 3 5 7 9l数组元素的存取通过一维索引(下标)进行,用圆括号括起来l v的第一个元素:v(1)lmatlab中数组下标从1开始l

9、 v的前三个元素:v(1:3)l v的第2到第4个元素:v(2:4)15“泰迪杯”全国数据挖掘挑战赛组委会 向量索引lv的第3到最后一个元素:v(3:end)l向量转置W=v.l若v是一个向量,则l v(:) 为一列向量l v(1:end)为一行向量l使用步长的不连续索引l v(1:2:end)l v(end:-2:1)16“泰迪杯”全国数据挖掘挑战赛组委会 矩阵索引l矩阵的表示:用方括号括起来并用分号隔开各行lA=1 2 3;4 5 6;7 8 9l矩阵(二维数组)采用双下标来索引,A(m,n)表示第m行第n列的元素l取出一列:C3=A(:

10、,3)l取出一行:R2=A(2,:)l取出前两行:T2=A(1:2,1:3)?=A (1:2,:)17“泰迪杯”全国数据挖掘挑战赛组委会 矩阵索引l使用向量作为矩阵索引lE=A(1 3,2 3):A的1、3行,2、3列上的元素l矩阵寻址:构造逻辑数组lD=logical(1 0 0;0 0 1;0 0 0)lA(D)l使用冒号(:):数组在matlab中按列存放,A(:)会将该数组的全部元素以逐列的方式排列成一个列向量18“泰迪杯”全国数据挖掘挑战赛组委会 矩阵索引l使用数组索引进行简单的图像操作f=imread(rose.tif);imsh

11、ow(f)fp=f(end:-1:1,:); %上下翻转 figure,imshow(fp)fp=f(257:768,257:768); %截取部分数据figure,imshow(fp)fs=f(1:2:end,1:2:end); %图像缩小(二取一)figure,imshow(fs)plot(f(512,:) %扫描线19“泰迪杯”全国数据挖掘挑战赛组委会 讲座内容图像中的字符分割示例20MATLAB图像处理简“泰迪杯”全国数据挖掘挑战赛组委会 理想情况下的字符分割A=imread(ocr.jpg); %读入图像imshow(A); %显示

12、图像B=rgb2gray(A); %将真彩色图像转化为灰度图像figure, imshow(B) %显示灰度图像figure, imhist(B); %显示图像的直方图a=graythresh(B) %计算二值化所需的阈值C=im2bw(B,a); %二值化figure,imshow(C) %显示二值化后的结果21“泰迪杯”全国数据挖掘挑战赛组委会 理想情况下的字符分割b=sum(not(C),2); %沿行方向进行投影(累加) %这里的not()是逻辑否size(b) %注意投影数组的维数figure,plot(b) %绘制投影曲线c=b50; %比较运算的结果是逻

13、辑值figure,plot(c) %绘制数组cl如何找出每行的起、止行号?22“泰迪杯”全国数据挖掘挑战赛组委会 理想情况下的字符分割d=diff(c); %对数组c进行差分运算lY = diff(X) = X(2)-X(1) X(3)-X(2) . X(m)-X(m-1)l xx=0 0 1 1 1 0 0;l diff(xx)= 0 1 0 0 -1 0l xx = 0 0 1 1 1 0 0ldiff(xx)中1的位置提前了,-1的位置不用改动23“泰迪杯”全国数据挖掘挑战赛组委会 理想情况下的字符分割e1=find(d=1)+1 %定

14、位每行开始的行号e2=find(d=-1) %定位每行结束的行号e=e1;e2; %合成记录行位置的二维数组 %e1、e2要转置为行向量D=C(e(1,1):e(2,1),:); %提取第一行文字的图像l如何实现自动化?lm,n=size(e); %获取e的行列数,n代表了文字的行数lfor i=1:n D= C(e(1,i):e(2,i),:); 24“泰迪杯”全国数据挖掘挑战赛组委会 理想情况下的字符分割figure,imshow(D) %显示切分出来的第一行文字f=sum(not(D),1); %在列方向上计算目标像素的投影figure,plot(f) %显示投

15、影数组g=f0;h=diff(g);k1=find(h=1)+1 %定位每个字符开始的列号k2=find(h=-1) %定位每个字符结束的列号k=k1;k2; %合成记录字符列位置的二维数组l使用循环将字符位置写入box文件25“泰迪杯”全国数据挖掘挑战赛组委会 复杂图像的情况A=imread(ocr2.jpg);imshow(A) B=rgb2gray(A); figure, imshow(B) %显示灰度图像a=graythresh(B) %计算二值化所需的阈值C=im2bw(B,a); %二值化figure,imshow(C) 该如何解决?26“泰迪杯”全国数据

16、挖掘挑战赛组委会 复杂图像的情况l思路:寻找文字部分的稳健的特征l图像锐化:凸显图像中的细微部份或增强已经模糊的细节l找出文字的边缘l微分算子会使图像锐化,使常量区域为027“泰迪杯”全国数据挖掘挑战赛组委会 复杂图像的情况l计算数字函数的导数以差分的形式实现,有不同的定义l用于一阶导数的定义需要满足:l(1) 在平坦段必须为零(常数灰阶值区域)l(2) 在灰阶步阶或斜面起始处必须不为零l(3) 沿着斜面必须不为零28)() 1(xfxfxf“泰迪杯”全国数据挖掘挑战赛组委会 复杂图像的情况l二次导数的任何定义需要:

17、l(1) 在平的区域必须为零l(2) 在灰阶步阶或斜函数的起始以及尾端必须不为零l(3) 沿着有常数斜率之斜面必须为零l将二阶导数定义成差分式l对二维函数而言29)(2) 1() 1(22xfxfxfxf),(4)1,() 1,(), 1(), 1(2yxfyxfyxfyxfyxff“泰迪杯”全国数据挖掘挑战赛组委会 复杂图像的情况l采用空间滤波的方式实现图像的锐化l空间滤波是一种邻域操作l定义中心点(x,y)l对于先定义的以(x,y)为中心的邻域内的像素进行运算l令结果为该点处处理的响应l对图像的每一点重复此操作l这里采用的处理是:将邻域中每个像素与相应的系数相乘,

18、然后将结果进行累加,从而得到该点处的响应。l邻域系数表现为一个矩阵。该系数矩阵也称为滤波器、掩模、核、模板或窗。30“泰迪杯”全国数据挖掘挑战赛组委会 二维滤波:卷积310 0 0 0 0 0 0 0 0 00 0 1 0 0 0 0 0 0 0 0 0 0 0 01 2 34 5 67 8 90 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00

19、0 0 0 0 0 0 0 0“泰迪杯”全国数据挖掘挑战赛组委会 二维滤波:卷积320 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 1 2 3 0 0 00 0 0 4 5 6 0 0 0 0 0 0 7 8 9 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 9 8 7 0 0 0 00 0 6 5 4 0 0 0 00 0 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 1 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0“泰迪杯”全国数据挖掘挑战赛组委会 复杂图像的情况l生成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论