《燕山大学图像处理课程设计基本文本图像的倾斜校正》由会员分享,可在线阅读,更多相关《燕山大学图像处理课程设计基本文本图像的倾斜校正(19页珍藏版)》请在金锄头文库上搜索。
1、工业自动化仪表3班 燕山大学课 程 设 计 说 明 书题目: 基本文本图像的倾斜校正 学院(系) 电气工程学院 年级专业: 11级仪表三班 学 号: * 学生姓名: * 指导教师: 王志斌 林洪彬 教师职称: 副教授 副教授 第 19 页 共 19 页 燕山大学课程设计(论文)任务书院(系):基本文本图像的倾斜校正 基层教学单位:自动化仪表系 学 号*学生姓名*专业(班级)11级仪表三班设计题目28 基本文本图像的倾斜校正设计技术参数根据图像处理的知识,确定图像的倾斜角度,并予以校正,需要对所给图像都要进行倾斜校正。设计要求设计确定图像中倾斜角度的方法,可实现图像中物体的倾斜校正,要求对文本图
2、像、及其他有明显倾斜的正方形、矩形可实现倾斜校正。设计中应具有自己的设计思想、设计体会。工作量1查找相关资料;2编写程序并调试;3撰写论文;4准备课设答辩。工作计划12月23日上午:根据题目的分析,查找相关资料,掌握整体设计思路。12月23日下午-25日:确立思路,设计程序。12月26日:调试程序,撰写论文。12月27日:论文定稿,准备课设答辩。参考资料1、数字图像处理学 电子工业出版社 贾永红 20032、数字图像处理(Matlab版) 电子工业出版社 冈萨雷斯 20063、其他数字图像处理和matlab编程方面的书籍及相关学习资料指导教师签字基层教学单位主任签字摘要数字信息时代人们更多地依
3、赖图像这一媒介,而比较常用的文本图像的倾斜问题无疑图像应用的是一大障碍。为了解决文本倾斜的自动校正功能,本文列举了四种倾斜校正的方法,涉及到基于文本图像边缘、矩形边缘的校正、基于文字向各方向投影的校正、基于投影实现特殊方向的文本校正、基于傅立叶频域分析的校正四种方法。本文方法涵盖了图形图像边缘倾斜校正、表格的倾斜校正、打印及手写文本的倾斜校正、90度特殊角情况的文本校正、180度倒立文字的校正,适用面广。通过实验验证以及与目前具有相关代表性的方法对比,论证了本文所采用的算法对带有表格、图像、手写体,以及各种语言的文本具有很好的校正效果,具有良好的有效性和可靠性。关键词:倾斜校正、文本、边缘、投
4、影、傅里叶。目录一、引言6二、算法综述6三、各算法原理分析及实现代码:6四、各算法评价17五、课程设计总结18参考文献18第一章 引言在现今数字信息化高速发展的大时代背景下,随着数码产品的拍照能力越来越出色,人们更多地将信息的存储和传输依靠在数字图像这一媒介上。而文字的数字图像化数字化图书库、pdf纸质电子书、文字扫描的发展,无疑对文本的转换技术提出了更高的要求。谈到数字图像化文本,就不得不提到这一技术遇到的最大障碍之一:输入文本图像的倾斜问题。正基于这一普遍存在的问题,我们提出了文本、图像的倾斜校正这一课题。第二章 算法综述论文的倾斜校正共涉及以下四种方法:1) 基于文本图像边缘、矩形边缘的
5、倾斜校正。2) 基于文字向各方向投影的倾斜校正,90度以下都能用。3) 基于投影实现特殊方向的文本垂直和倒立文本的校正。4) 基于傅立叶频域分析的文本、表格、图像的倾斜校正。第三章 各算法原理分析及实现代码1) 基于文本图像边缘、矩形边缘的倾斜校正适用范围:具有清晰边缘的图片、形状,倾斜角小于45度。1. 将图像转化为灰度图像。使用MATLAB进行处理时,所读入的图像是RGB三维矩阵,在以后的处理中用到的是灰度图像和二值图像,因此,必须经过处理变成灰度图像。2. 用im2bw函数实现图像的二值化,变成只有0和1的图片。一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体
6、,最常用的方法就是图像的二值化。灰度图像二值化处理是将图像上的点的灰度值置为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,
7、y2)两点,用公式k=(y2-y1)/(x2-x1)求找到的边缘的斜率,用反正切atan函数求出倾斜角。 5. 确定图像倾斜角。通过倾斜角大于45度还是小于45度,确定图像是经过顺时针旋转还是逆时针旋转产生的倾斜6. 倾斜校正。用imrotate函数实现倾斜校正。 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; %循环找两个边缘点for y=1:i_high
8、t for x=1:i_width if i(y,x)=1 %在每一行里逐列扫描 sign=0; x1=x; y1=y; break end endendfor x=1:i_width %在每一列里逐行扫描 for y=1:i_hight if i(y,x)=1 sign=0; x2=x; y2=y; break end endendk=(y2-y1)/(x2-x1); %求两点确定的边缘直线的斜率theta=atan(k); %求直线的倾斜角a=theta*180/pi; %弧度转危角度if (abs(a)=max(max(R); %J记录了倾斜角qingxiejiao=90-J;bw=im
9、rotate(bw,qingxiejiao,bilinear,crop); %qingxiejiao取值为正则逆时针旋转figure,imshow(bw);title(倾斜校正后图像); %输出校正图像 3)基于投影实现特殊方向文本垂直和倒立文本的校正。1. 适用范围:仅适用于正负90度或180度倾斜的表格、文本,文字等排列比较整齐图片,打印、手写均可。2. 将图像转化为灰度图像。3. 向水平和垂直方向投影,找出投影大于一定阈值(经实验后取450)的方向即为行所在方向,进而识别倾斜角是90度还是180度。4. imrotate函数倾斜校正。每一个处理后同时输出两张旋转角相差180度的图片,解决
10、可能出现的90文字倒立的问题(原创,前所未有)。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); sub