MATLAB图像处理识别商品条形码、图像分割 | 您所在的位置:网站首页 › 一维码识别技术 › MATLAB图像处理识别商品条形码、图像分割 |
MATLB图像处理条形码识别
基于数字图像处理解决条形码识别 matlab2018a读取图像,检测识别图中条形码并翻译,显示其产品信息,结合excel信息库、查找指定产品。 主要功能手机拍照识别 1、读取图片,并设定最优值进行二值化 2、探测图片条形码位置并矫正 2、检测图片中的条形码并分割出来 3、对条形码的条纹宽度测量并根据编码规则译码 4、译码校验、信息提示 5、条码译文在excel库中比对产品信息 6、支持添加新类产品信息 7、支持查找指定产品信息 8、GUI界面人机交互 主要技术1、canny算子边缘探测 2、基于hougf变化的图像矫正算法 3、图像开运算、闭运算(腐蚀、膨胀、擦除、取反) 4、条形码边缘检测技术和图像分割 5、EAN-13码的译码规则设计 6、结合excel做数据库,存储产品信息并显示和提示 7、GUI界面操作 实际效果 产品信息库
%%%%%%探测矫正%%%%%%% bw = edge(double(handles.erzhi),‘sobel’,‘horizontal’); %用sobel算子检测水平方向检测边缘 [m,n]=size(bw); S=round(sqrt(m^2 + n^2));%S可以去到的最大值 ma = 180; md = S; r=zeros(md,ma); c=0; for i=1:m for j=1:n if bw(i,j)==1 for k=1:ma ru=round(abs(icos(k3.14/180) + jsin(k3.14/180))); r(ru+1,k)=r(ru+1,k)+1; end end end end if cround(m/2) %去除半数干扰 levl(i)=1; else levl(i)=0; end end for i=1:n-1 if levl(i)==0&&levl(i+1)==1 x(t)=i; t=t+1; end if levl(i)==1&&levl(i+1)0 y§=i; p=p+1; end end %%%%%%%计算条纹宽度结果保存在d中%%%%%%%%%% for ii=1:30 if ii1 %起始条纹 d(ii)=x(ii)-y(ii); %计算第一个条的宽度 d(ii+1)=y(ii+1)-x(ii); %计算第一个空的宽度 end if ii>1 %第二个条纹开始 if ii>1&&ii |
CopyRight 2018-2019 实验室设备网 版权所有 |