基于OCR的字母识别算法的matlab仿真

Posted fpga&matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于OCR的字母识别算法的matlab仿真相关的知识,希望对你有一定的参考价值。

1.算法简介

      OCR识别可以分为数字扫描对象的获取,数字图像的生产,数字图像的处理和OCR文本识别等四个阶段.OCR识别在信息资源数字化工作中应用时,其准确度一直是人们关注的焦点,因为OCR精确识别是保证数字化产品质量进而为整项工作提供用户保障的一个重要环节. 

2.部分核心代码

% OCR (Optical Character Recognition).
 
% PRINCIPAL PROGRAM
warning off %#ok<WNOFF>
% Clear all
clc, close all, clear all
% Read image
imagen=imread('TEST_1.jpg');
% Show image
imshow(imagen);
title('INPUT IMAGE WITH NOISE')
% Convert to gray scale
if size(imagen,3)==3 %RGB image
    imagen=rgb2gray(imagen);
end
% Convert to BW
threshold = graythresh(imagen);
imagen =~im2bw(imagen,threshold);
% Remove all object containing fewer than 30 pixels
imagen = bwareaopen(imagen,30);
%Storage matrix word from image
word=[ ];
re=imagen;
%Opens text.txt as file for write
fid = fopen('text.txt', 'wt');
% Load templates
load templates
global templates
% Compute the number of letters in template file
num_letras=size(templates,2);
while 1
    %Fcn 'lines' separate lines in text
    [fl re]=lines(re);
    imgn=fl;
    %Uncomment line below to see lines one by one
    %imshow(fl);pause(0.5)    
    %-----------------------------------------------------------------     
    % Label and count connected components
    [L Ne] = bwlabel(imgn);    
    for n=1:Ne
        [r,c] = find(L==n);
        % Extract letter
        n1=imgn(min(r):max(r),min(c):max(c));  
        % Resize letter (same size of template)
        img_r=imresize(n1,[42 24]);
        %Uncomment line below to see letters one by one
         %imshow(img_r);pause(0.5)
        %-------------------------------------------------------------------
        % Call fcn to convert image to text
        letter=read_letter(img_r,num_letras);
        % Letter concatenation
        word=[word letter];
    end
    %fprintf(fid,'%s\\n',lower(word));%Write 'word' in text file (lower)
    fprintf(fid,'%s\\n',word);%Write 'word' in text file (upper)
    % Clear 'word' variable
    word=[ ];
    %*When the sentences finish, breaks the loop
    if isempty(re)  %See variable 're' in Fcn 'lines'
        break
    end    
end
fclose(fid);
%Open 'text.txt' file
winopen('text.txt')
fprintf('For more information, visit: <a href= "http://www.matpic.com">www.matpic.com </a> \\n')
% clear all

3.仿真演示

 

4.相关参考文献

[1]郭军. 信息资源数字化文本型数字图像OCR识别准确度影响因素及提高策略研究[D]. 郑州大学.

C69

以上是关于基于OCR的字母识别算法的matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章

印刷字符识别基于matlab OCR印刷字母+数字识别含Matlab源码 1861期

印刷字符识别基于matlab OCR印刷字母+数字识别含Matlab源码 287期

步态识别基于CNN深度学习的步态识别算法的MATLAB仿真

基于深度学习的步态识别算法的MATLAB仿真

基于形态学处理的车牌提取,字符分割和车牌识别算法matlab仿真

基于CNN卷积神经网络的语音信号识别算法matlab仿真