资源简介

matlab一维条形码识别程序,条码为通用的EAN一13条码

资源截图

代码片段和文件信息

%%------------条码识别,建立宽度序列--------------%%%
%EAN-13条码字符集特点:A/B子集为白开头黑结尾,C子集为黑开头白结尾
%:一个字符由2个条和2个空构成,故A/B子集就是白黑白黑,C子集就是黑白黑白
function [numberbar1]=barcognition(Iheightwidth)

bar=zeros(1width);
znum = zeros(1width);
onum = zeros(1width);
%%%-----------------少数服从多数校正----------------%%%
for i=1:height
    for j=1:width
        if(I(ij)==0)
            znum(1j)=znum(1j)+1;%统计每一列0的个数
        else
            onum(1j)=onum(1j)+1;%统计每一列1的个数
        end
    end
end
%%决定宽度序列的二进制码
for i=1:width
    if(znum(1i)>onum(1i))
        bar(1i)=0;
    else
        bar(1i)=1;
    end
end
%00011000--010 
%1000000001100000--10000100
%1111111001111100--1110110
%1111100111111100--1101110
%11000001111111000-1001110
%1000111100000000--1011000
%1100001111111000--1001110
%11001100011--10101
%001111111110011---0111101(3)
%0011111001111111--0110111(8)
%00000110000011111-0010011(2)
%0011111111100111--0111101(3)
%0011001111111111--0101111(6)
%0011111110011111--0111011(7)
%0011000--010
%%--------------校正条形码宽度序列------------------%%
%%%-------------------奇偶校正---------------------%%%
zcout=0;
ocout=0;
count=1;
bar1=zeros(1width+10);
for i=1:width
    if(bar(1i)==0)
        if(ocout==1)       %删补,让它成偶数
            bar1(1count)=1;%补上1个1;
            count=count+1;
        elseif(ocout>8)    %4/5
            for i=1:(ocout-8)
                count=count-1;
            end
        end
        ocout=0;
        zcout=zcout+1;
        bar1(1count)=0;%累加0
        count=count+1;
    end
    if(bar(1i)==1)
        if(zcout==1)        %判断前面有多少个0
            bar1(1count)=1;%补上1个1;
            count=count+1;
        elseif(zcout>8)     %多于8个的,删除多余的
            for i=1:(ocout-8)
                count=count-1;
            end
        end
        zcout=0;
        ocout=ocout+1;      %字符1计数
        bar1(1count)=1;
        count=count+1;
    end
end
number=count-1;

%%-----------------字符集分类-------------------%%
%开始数据(3010),左侧数据(6)中间符(510101),右侧数据(6),结束符(3)
data =zeros(159);  %起始符有3个字符
ldata =0;           %白黑白黑
count1=1;
oflag=false;
zflag=false;
stflag=true;
for i=1:number
    if(stflag==true)
        if(bar1(1i)~=0)%判断是否为0,如果不是0则不开始统计数据
            continue;%跳过去
        else
            stflag = false;
        end            
    end
    if(bar1(1i)==0)
        if(oflag==true)
            count1=count1+1;%1切换到0,表示白到黑,换一种类型
            oflag=false;
        end
        zflag=true;
        data(1count1)=data(1count1)+1;
        %count=count+1;
    elseif(bar1(1i)==1)
        if(zflag==true)
            count1=count1+1;   %换一种类型
            zflag=false;
        end
        oflag=true;
        data(1count1)=data(1count1)+1;
        %count=count+1;
    end
end
%[number] = findchar(a1b1a2b2pos)
max = count1-1;
%pos = 0;
%[numvalid]=findchar(data(11)data(12)data(13)‘head‘);

%左侧数据
lnumber=0;
pos =1;
for i=4:4:24  
    [lnumlvalid]=findchar(data

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      100129  2014-06-03 10:12  codebar\01.jpg
     文件       51108  2014-05-27 09:57  codebar\02.jpg
     文件       63640  2014-05-27 09:53  codebar\03.jpg
     文件       71104  2014-05-21 15:53  codebar\12.jpg
     文件       72537  2014-06-03 11:34  codebar\123.jpg
     文件     7873678  2014-06-03 11:25  codebar\bar.mp4
     文件        3574  2007-11-12 19:43  codebar\barcognition.m
     文件        6448  2014-05-21 10:26  codebar\bw3.jpg
     文件        8209  2014-06-03 15:18  codebar\codebar.m
     文件        8048  2014-05-21 16:35  codebar\codebarreg.m
     文件        2409  2007-11-12 19:30  codebar\findchar.m
     文件       19608  2014-06-03 10:13  codebar\hs_err_pid7668.log
     文件        2354  2014-05-21 16:36  codebar\I5.jpg
     文件        1087  2007-11-08 10:32  codebar\ImageEdgePoint.m
     文件        4382  2014-06-03 12:00  codebar\imagefilter.m
     文件        9683  2007-11-10 15:04  codebar\point2line.m
     文件        1282  2007-11-12 19:48  codebar\readme.txt
     文件        1110  2007-11-09 15:27  codebar\ThretholdOptimize.m
     文件     2359350  2007-11-07 10:12  codebar\w16.bmp
     文件     2359350  2007-11-07 10:11  codebar\w7.bmp
     文件     2359350  2007-11-07 10:11  codebar\w8.bmp

评论

共有 条评论