基于特征匹配的英文印刷字符识别代码自己的注释

该博客介绍了一个英文印刷字符识别的代码实现,通过图像处理技术包括二值化、闭运算和区域连接等步骤,提取并识别图片中的英文字符。代码中还涉及到了字符的标准模板生成与匹配,以便提高识别准确性。
function MainForm
global bw;
global bl;
global bll;
global s;
global fontSize;
global charpic;
global hMainFig;
global pic;
global hText;

clc; close all; warning off all;
%目录检,如果当前目录不存在pic文件,则创建
if ~exist(fullfile(pwd, 'pic'), 'dir')
    mkdir(fullfile(pwd, 'pic'));
end
picname = fullfile(pwd, 'image.jpg');
pic = imread(picname);%读取图片
s = size(pic);      %计算图片尺寸--s为二维/三维矩阵
if length(s) == 3
    pic = rgb2gray(pic);%如果s是三维,表明是rgb图片,转为灰度
end
bw = im2bw(pic, 0.7);%二值化
bw = ~bw;       %二值图像取反,将英文字母部分变为1,背景为0
for i = 1 : s(1)    %扫描每一行
    if sum(bw(i,:) ~=0) > 0 %如果找到一行的所有像素加起来>0
        FontSize_s = i;     %表明从这行开始有字,前面均为空白
        break;
    end
end

for i = FontSize_s : s(1)   %从有字的那行像素开始扫描
    if sum(bw(i,:) ~=0) == 0    %直到有一行的所有像素加起来得0
        FontSize_e = i;     %表明从这行之后为空白
        break;
    end
end
FontSizeT = FontSize_e - FontSize_s;%字体的高度
fontName = '宋体';
fontSize = FontSizeT;

bw1 = imclose(bw, strel('line', 4, 90));%对图像进行闭运算,先加粗再细化
%fig
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值