您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 燕山大学图像处理课程设计-基本文本图像的倾斜校正..
工业自动化仪表3班第1页共19页燕山大学课程设计说明书题目:基本文本图像的倾斜校正学院(系)电气工程学院年级专业:11级仪表三班学号:*************学生姓名:******指导教师:王志斌林洪彬教师职称:副教授副教授工业自动化仪表3班第2页共19页燕山大学课程设计(论文)任务书院(系):基本文本图像的倾斜校正基层教学单位:自动化仪表系学号******学生姓名***专业(班级)11级仪表三班设计题目28基本文本图像的倾斜校正设计技术参数根据图像处理的知识,确定图像的倾斜角度,并予以校正,需要对所给图像都要进行倾斜校正。设计要求设计确定图像中倾斜角度的方法,可实现图像中物体的倾斜校正,要求对文本图像、及其他有明显倾斜的正方形、矩形可实现倾斜校正。设计中应具有自己的设计思想、设计体会。工作量1查找相关资料;2编写程序并调试;3撰写论文;4准备课设答辩。工作计划12月23日上午:根据题目的分析,查找相关资料,掌握整体设计思路。12月23日下午-25日:确立思路,设计程序。12月26日:调试程序,撰写论文。12月27日:论文定稿,准备课设答辩。参考资料1、数字图像处理学电子工业出版社贾永红20032、数字图像处理(Matlab版)电子工业出版社冈萨雷斯20063、其他数字图像处理和matlab编程方面的书籍及相关学习资料指导教师签字基层教学单位主任签字工业自动化仪表3班第3页共19页摘要数字信息时代人们更多地依赖图像这一媒介,而比较常用的文本图像的倾斜问题无疑图像应用的是一大障碍。为了解决文本倾斜的自动校正功能,本文列举了四种倾斜校正的方法,涉及到基于文本图像边缘、矩形边缘的校正、基于文字向各方向投影的校正、基于投影实现特殊方向的文本校正、基于傅立叶频域分析的校正四种方法。本文方法涵盖了图形图像边缘倾斜校正、表格的倾斜校正、打印及手写文本的倾斜校正、90度特殊角情况的文本校正、180度倒立文字的校正,适用面广。通过实验验证以及与目前具有相关代表性的方法对比,论证了本文所采用的算法对带有表格、图像、手写体,以及各种语言的文本具有很好的校正效果,具有良好的有效性和可靠性。关键词:倾斜校正、文本、边缘、投影、傅里叶。工业自动化仪表3班第4页共19页目录一、引言...............................................5二、算法综述...........................................5三、各算法原理分析及实现代码:.........................5四、各算法评价........................................16五、课程设计总结......................................17参考文献..............................................17工业自动化仪表3班第5页共19页第一章引言在现今数字信息化高速发展的大时代背景下,随着数码产品的拍照能力越来越出色,人们更多地将信息的存储和传输依靠在数字图像这一媒介上。而文字的数字图像化——数字化图书库、pdf纸质电子书、文字扫描的发展,无疑对文本的转换技术提出了更高的要求。谈到数字图像化文本,就不得不提到这一技术遇到的最大障碍之一:输入文本图像的倾斜问题。正基于这一普遍存在的问题,我们提出了文本、图像的倾斜校正这一课题。第二章算法综述论文的倾斜校正共涉及以下四种方法:1)基于文本图像边缘、矩形边缘的倾斜校正。2)基于文字向各方向投影的倾斜校正,90度以下都能用。3)基于投影实现特殊方向的文本——垂直和倒立文本的校正。4)基于傅立叶频域分析的文本、表格、图像的倾斜校正。第三章各算法原理分析及实现代码1)基于文本图像边缘、矩形边缘的倾斜校正适用范围:具有清晰边缘的图片、形状,倾斜角小于45度。1.将图像转化为灰度图像。使用MATLAB进行处理时,所读入的图像是RGB三维矩阵,在以后的处理中用到的是灰度图像和二值图像,因此,必须经过处理变成灰度图像。2.用im2bw函数实现图像的二值化,变成只有0和1的图片。一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是工业自动化仪表3班第6页共19页图像的二值化。灰度图像二值化处理是将图像上的点的灰度值置为0或1,本代码中选取的是自动二值i=im2bw(i,graythresh(i))。3.找文本图片的两个边缘角所在的点。通过i,j循环扫描,找到第一个灰度值为1的点,也就是白点。找上边界点:从第一个点(0,0)开始,在每一行里逐列扫描,寻找第一列灰度值为1像素点即上边界的角所在点,(x1,y1),找到后立即停止寻找,跳出循环;找左边界点:从第一个点(0,0)开始,在每一列里逐行扫描,寻找第一列灰度值为1像素点即左边界的角所在点,(x2,y2),找到后立即停止寻找,跳出循环。4.两点式求斜率。通过(x1,y1),(x2,y2)两点,用公式k=(y2-y1)/(x2-x1)求找到的边缘的斜率,用反正切atan函数求出倾斜角。5.确定图像倾斜角。通过倾斜角大于45度还是小于45度,确定图像是经过顺时针旋转还是逆时针旋转产生的倾斜6.倾斜校正。用imrotate函数实现倾斜校正。工业自动化仪表3班第7页共19页7.代码部分clc;clear;i=imread('D:\12.png');%读入图片V=i;i_hight=size(i,1);i_width=size(i,2);i=rgb2gray(i);%变灰度图片i=im2bw(i,graythresh(i))%自动二值化sign=1;%循环找两个边缘点fory=1:i_hightforx=1:i_widthifi(y,x)==1%在每一行里逐列扫描sign=0;x1=x;y1=y;breakendendendforx=1:i_width%在每一列里逐行扫描fory=1:i_hightifi(y,x)==1sign=0;x2=x;y2=y;breakendendendk=(y2-y1)/(x2-x1);%求两点确定的边缘直线的斜率theta=atan(k);%求直线的倾斜角a=theta*180/pi;%弧度转危角度if(abs(a)=45)%由倾角大小与45度的比较判断校正应该顺时针旋转还是逆时针旋转imshow(V);title('校正前图像')%输出原图像figureA=imrotate(V,a);%逆时针转a度工业自动化仪表3班第8页共19页imshow(A);title('校正后图像')elseimshow(V);title('校正前图像')%输出原图像figureA=imrotate(V,a+90);%顺时针转a+90度imshow(A);title('校正后图像')%输出校正图像end工业自动化仪表3班第9页共19页2)基于文字向各方向投影的倾斜校正,倾斜角绝对值在90度以下都能用。适用范围:文本,手写和打印的,表格均可,倾斜角绝对值在90度以下。1.将图像转化为灰度图像。2.利用radon函数,沿着0度到180度,分别计算180个方向角的积分,找文本各方向投影最大的方向,该方向直线与水平线夹角即为文本中文字行的倾斜角。3.用imrotate函数进行倾斜校正。4.代码部分clearallcloseallbw=imread('D:\1.png');b=rgb2gray(bw);figure,imshow(b);title('校正前灰度图像');%================倾斜校正======================b=edge(b);theta=1:180;[R,xp]=radon(b,theta);%theta表示角度从1取到179.这样,radon就得到了不同角度下的径向上的图像场强值,即R矩阵。xp是对应的角度,跟theta一样。[I,J]=find(R=max(max(R)));%J记录了倾斜角qingxiejiao=90-J;bw=imrotate(bw,qingxiejiao,'bilinear','crop');%qingxiejiao取值为正则逆时针旋转figure,imshow(bw);title('倾斜校正后图像');%输出校正图像工业自动化仪表3班第10页共19页3)基于投影实现特殊方向文本—垂直和倒立文本的校正。1.适用范围:仅适用于正负90度或180度倾斜的表格、文本,文字等排列比较整齐图片,打印、手写均可。2.将图像转化为灰度图像。3.向水平和垂直方向投影,找出投影大于一定阈值(经实验后取450)的方向即为行所在方向,进而识别倾斜角是90度还是180度。4.imrotate函数倾斜校正。每一个处理后同时输出两张旋转角相差180度的图片,解决可能出现的90文字倒立的问题(原创,前所未有)。工业自动化仪表3班第11页共19页5.代码部分:i=imread('D:\23.png');imshow(i);title('原图像');bw=rgb2gray(i);bw=im2bw(i,graythresh(bw))%自动二值化[mt1,nt1]=size(bw);Ty=find(sum(bw)=450==1);%向横轴投影,投影点的灰度值累加,阈值取450,大于450的区域即为累加后的白色投影的位置%b=length(Ty)rat=length(Ty)/nt1;if(rat=0.4)%白色投影长度占投影线长度的比例大于0.4即认为该投影方向为文字行方向A=imrotate(i,270);%图像校正C=imrotate(i,90);%图像校正subplot(1,2,1);imshow(A);title('校正图像1');subplot(1,2,2);imshow(C);title('校正图像2');else%比例=0.4即认为该投影方向为文字行方向的垂直方向A=imrotate(i,0);%图像校正C=imrotate(i,180);%图像校正subplot(1,2,1);imshow(A);title('校正图像1');subplot(1,2,2);imshow(C);title('校正图像2');end工业自动化仪表3班第12页共19页4)基于傅立叶频域分析的文本、表格、图像的倾斜校正。适用范围:可用于表格、矩形及一些文字校正,文字手写打印均可,文本行最好有下划线识别率更高。1.离散傅里叶变换fft2处理成频域图片。2.交换高低频位置fftshift。3.将频域图片按所在象限分割,分别计算各象限中线的斜率,求四个倾斜角平均值。4.通过原图矩阵乘以一个倾斜校正的矩阵实现图片旋转,达到倾斜校正目的。5.代码部分clcclearf=imread('D:\31.jpg');f=im2double(f);%把图像数据类型转换为双精度浮点类型。figure(1),imshow(f,[])title('1.输入图像')F=fft2(f);%fft2是2维离散傅立叶变换%imshow(F)Fc=fftshift(F);%低频移到频域图的中间%imshow(Fc)S=log(1+abs(Fc));%输入图像的频域图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%↓%下面将频域图按所在象限分成四块,分别计算每个象限亮线的倾斜角[m,n]=size(Fc);工业自动化仪表3班第13页共19页M=floor(m/2)+1;N=floor(n/2)+1;%取原频域图的几何中心点。floor为向下取整S1=S(M-150:M,N:N+150);%分别将频域图按所在象限等分成四块[M,N]=size(S1);%取出第一象限S1(M-5:M,1:5)=0;S5=S1;%标出原频域图的几何中心点,方便查看fork=1:20maximum=max(max(S1));%maximum取最大值[I1(k),J1(k)]=fin
本文标题:燕山大学图像处理课程设计-基本文本图像的倾斜校正..
链接地址:https://www.777doc.com/doc-5165429 .html