1.简述

随着计算机科学的飞速发展,以图像为主的多媒体信息迅速成为重要的信息传递媒介,在图像中,文字信息(如新闻标题等字幕) 包含了丰富的高层语义信息,提取出这些文字,对于图像高层语义的理解、索引和检索非常有帮助。图像文字提取又分为动态图像文字提取和静态图像文字提取两种,其中,静态图像文字提取是动态图像文字提取的基础,其应用范围更为广泛,对它的研究具有基础性,所以本文主要讨论静态图像的文字提取技术。静态图像中的文字可分成两大类: 一种是图像中场景本身包含的文字, 称为场景文字; 另一种是图像后期制作中加入的文字, 称为人工文字,如右图所示。场景文字由于其出现的位置、小、颜色和形态的随机性, 一般难于检测和提取;而人工文字则字体较规范、大小有一定的限度且易辨认,颜色为单色, 相对与前者更易被检测和提取,又因其对图像内容起到说明总结的作用,故适合用来做图像的索引和检索关键字。对图像中场景文字的研究难度大,目前这方面的研究成果与文献也不是很丰富,本文主要讨论图像中人工文字提取技术。

二.静态图像中文字的特点

静态图像中文字(本文特指人工文字,下同)具有以下主要特征:

(1)文字位于前端,且不会被遮挡;

(2)文字一般是单色的;

(3)文字大小在一幅图片中固定,并且宽度和高度大体相同,从满足人眼视觉感受的角度来说,图像中文字的尺寸既不会过大也不会过小;

(4)文字的分布比较集中;

(5)文字的排列一般为水平方向或垂直方向;

(6)多行文字之间,以及单行内各个字之间存在不同于文字区域的空隙。在静态图片文字的检测与提取过程中, 一般情况下都是依据上述特征进行处理的。

三.文字提取、识别的一般流程

静态图像文字提取一般分为以下步骤:文字区域检测与定位、文字分割与文字提取、文字后处理。其流程如图1所示。

2.代码

%% 学习目标:通过matlab识别中文字符图像

load fbp;    %加载训练好的神经网络模型
G=imread('biaozhun.jpg');    %读取图片
I=rgb2gray(G);      %转灰度图象
B1=filter2(fspecial('average',3),I)/255;  %均值滤波
d=im2bw(B1,0.5);   %二值处理
imshow(d);
k1=1;
k2=1;
s=sum(d');
j=2;a=1;
c=1 
[m,n]=size(d');
while s(j)==m
    j=j+1;
end
k1=j;
while s(j)~=m && j<=n-1
    j=j+1;
end
k2=j-1;
d=d((k1:k2),:); 
%%   行分割
[m,n]=size(d);
k1=1;k2=1;s=sum(d);j=2;a=1;c=1
for a=1:16   
    while s(j)==m
        j=j+1;
    end
    k1=j;
    while s(j)~=m && j<=n-1
        j=j+1;
    end
    k2=j-1;
%%  列分割
    if c==1
        b1=d(:,(k1:k2));
        imwrite(b1,'im1.jpg');
        t1=tezhengtiqu(b1);
        P_test = [t1']; 
        y = sim(net,P_test);
        word=fbmjieguoxianshi(y)
    end
%%  第1个字符
if c==2
    b2=d(:,(k1:k2));
    imwrite(b2,'im2.jpg');
    t2=tezhengtiqu(b2);
    P_test = [t2]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%第2个字符
if c==3
    b3=d(:,(k1:k2));
    imwrite(b3,'im3.jpg');
    t3=tezhengtiqu(b3);
    P_test = [t3]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%第3个字符
if c==4
    b4=d(:,(k1:k2));
    imwrite(b4,'im4.jpg');
    t4=tezhengtiqu(b4);
    P_test = [t4]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%第4个字符
if c==5
    b5=d(:,(k1:k2));
    imwrite(b5,'im5.jpg');
    t5=tezhengtiqu(b5);
    P_test = [t5]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第五5个字符
if c==6
    b6=d(:,(k1:k2));
    imwrite(b6,'im6.jpg');
    t6=tezhengtiqu(b6);
    P_test = [t6]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第6个字符
if c==7
    b7=d(:,(k1:k2));
    imwrite(b7,'im7.jpg');
    t7=tezhengtiqu(b7);
    P_test = [t7]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第7个字符
if c==8
    b8=d(:,(k1:k2));
    imwrite(b8,'im8.jpg');
    t8=tezhengtiqu(b8);
    P_test = [t8]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第8个字符
if c==9
    b9=d(:,(k1:k2));
    imwrite(b9,'im9.jpg');
    t9=tezhengtiqu(b9);
    P_test = [t9]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第9个字符
if c==10
    b10=d(:,(k1:k2));
    imwrite(b10,'im10.jpg');
    t10=tezhengtiqu(b10);
    P_test = [t10]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第10个字符
if c==11
    b11=d(:,(k1:k2));
    imwrite(b11,'im11.jpg');
    t11=tezhengtiqu(b11);
    P_test = [t11]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第11个字符
if c==12
    b12=d(:,(k1:k2));
    imwrite(b12,'im12.jpg');
    t12=tezhengtiqu(b12);
    P_test = [t12]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第12个字符
if c==13
    b13=d(:,(k1:k2));
    imwrite(b13,'im13.jpg');
    t13=tezhengtiqu(b13);
    P_test = [t13]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第13个字符
if c==14
    b14=d(:,(k1:k2));
    imwrite(b14,'im14.jpg');
    t14=tezhengtiqu(b14);
    P_test = [t14]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第14个字符
if c==15
    b15=d(:,(k1:k2));
    imwrite(b15,'im15.jpg');
    t15=tezhengtiqu(b15);
    P_test = [t15]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第15个字符
if c==16
    b16=d(:,(k1:k2));
    imwrite(b16,'im16.jpg');
    t16=tezhengtiqu(b16);
    P_test = [t16]; 
    y = sim(net,P_test');
    word=fbmjieguoxianshi(y)
end
%--------第16个字符
 c=c+1;   
end
subplot(2,8,1),imshow('im1.jpg');
subplot(2,8,2),imshow('im2.jpg');
subplot(2,8,3),imshow('im3.jpg');
subplot(2,8,4),imshow('im4.jpg');
subplot(2,8,5),imshow('im5.jpg');
subplot(2,8,6),imshow('im6.jpg');
subplot(2,8,7),imshow('im7.jpg');
subplot(2,8,8),imshow('im8.jpg');
subplot(2,8,9),imshow('im9.jpg');
subplot(2,8,10),imshow('im10.jpg');
subplot(2,8,11),imshow('im11.jpg');
subplot(2,8,12),imshow('im12.jpg');
subplot(2,8,13),imshow('im13.jpg');
subplot(2,8,14),imshow('im14.jpg');
subplot(2,8,15),imshow('im15.jpg');
subplot(2,8,16),imshow('im16.jpg');

3.运行结果

20中文字符识别(matlab程序)相关推荐

  1. 艾特肯法方程解matlab程序,牛顿迭代法matlab代码

    牛顿法 迭代公式: x(k1) xk [2 f (x(k) )]1f (x(k) ) Matlab 代码: function [x1,k] =newton(x1,eps) hs=inline('(x ...

  2. matlab程序窗口是乱码,解决matlab中文乱码

    问题:matlab脚本与函数文件的中文注释显示乱码. 环境:matlab R2016a.Windows 10 home. 解决方案: step1 检查locale值 matlab命令行键入命令 fea ...

  3. 聚类分析matlab检验,「matlab聚类分析」聚类分析的Matlab 程序—系统聚类(附有案例分析) - 金橙教程网...

    matlab聚类分析 聚类分析的Matlab 程序-系统聚类 (1)计算数据集每对元素之间的距离,对应函数为pdistw. 调用格式:Y=pdist(X),Y=pdist(X,'metric'), Y ...

  4. linux下java调用matlab程序,linux_java调用windows_matlab程序

    0 说明 本文为研究java和matlab的混合编程,进行了详细的测试和探索,以解决linux环境下java程序调用matlab程序的一个应用. linux端的环境 :(运行java程序并调用wind ...

  5. 关联矩阵古林法的matlab代码,[转载][原创]灰色关联分析及Matlab程序实现

    灰色系统理论由我国著名学者邓聚龙教授于1982提出.灰色关联分析是灰色系统理论的一个分支,应用灰色关联分析方法对受多种因素影响的事物和现象从整体观念出发进行综合评价是一个被广为接受的方法. 一.灰色关 ...

  6. 分别统计出其中英文字母、空格、数字和其它字符的个数 matlab 程序,编写一段程序,要求先输入一行字符,然后分别统计出其中英文...

    编写一个求和的程序,要求能任意输入两个整数,求和 用javascript写 +=functionadd(){varA=document.getElementById("a").va ...

  7. 无载波幅度和相位调制(CAP)与QAM调制的详细解析(可见光通信应用场景),以及CAP matlab程序下载链接

    文章目录 前言 一.QAM调制? 二.无载波幅度和相位调制(CAP) 三.CAP调制与QAM调制之间的联系(异同点) 四.CAP调制相比于QAM调制的优缺点 4.1.优点 4.2.缺点 五.无载波幅度 ...

  8. 秦九韶算法matlab程序,数值分析matlab程序实例.doc

    数值分析matlab程序实例 1,秦九韶算法,求出P(x=3)=2+4x+5x^2+2x^3的值 clear?all; x=3; n=3; a(1)=2;a(2)=4;a(3)=5;a(4)=2 v( ...

  9. matlab二维谐振子,基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急...

    基于有限差分法求解的二维谐振子的MATLAB程序如下.哪位大神能帮我做个注明啊,完全看不懂啊,,急0 ____丿呆呆丶2017.04.15浏览20次分享举报 tic clc clear L=20; W ...

最新文章

  1. sql 多行转成一行
  2. 2.4 编写第一个自动化脚本
  3. 3.3.2 差错控制(检错编码)
  4. 清空数据库部分表的数据 Oracle
  5. Thymeleaf——使用模板动态生成JavaScript脚本文件
  6. line-height的一点见识
  7. 周华健,歌声伴我成长(四)
  8. 迪杰斯特拉算法 两点间最短路径的选择
  9. sleep、wait、yield、join区别
  10. 将文件放到Android模拟器的SD卡
  11. thinkphp5 事务回滚_卓象程序员:ThinkPHP5实现事务功能
  12. ElementUI Select选择器下拉框样式修改
  13. 利用Gazebo搭建赛道,控制小车完成比赛(大学生智能车大赛室外光电组赛道仿真模拟)
  14. 牛逼!这个C++跳棋游戏居然可以让你边玩游戏边学编程!
  15. 华为 eNSP启动设备AR1失败 错误代码40
  16. Discuznbsp;x2.5单页制作的教程
  17. MFC之CMFCColorBar 在添加后控件显示为灰色解决方案
  18. 音箱箱体的分类(四)
  19. string 拆分字符串
  20. ⚡王者农药皮肤图片获取!⚡

热门文章

  1. SPSS计算极值、平均值、中位数、方差、偏度、峰度、变异系数
  2. 设计模式实战应用之三:装饰者模式
  3. 恒压恒流数控电源,恒压电源,恒流电源
  4. Scrapy执行crawl命令报错:ModuleNotFoundError: No module named 'win32api'
  5. 2014年2月7日-2月17日,(36小时,剩4646)
  6. 别再舔屏F4的颜了,淘宝这一次准备让F4清空你的购物车!
  7. matlab创建一个函数,matlab定义一个新函数
  8. 如何自定义应用层协议?
  9. 云计算入门与常见概念介绍
  10. 如何在星巴克点咖啡 -- 解读意式咖啡单