MATLAB图像处理识别商品条形码、图像分割 您所在的位置:网站首页 一维码识别技术 MATLAB图像处理识别商品条形码、图像分割

MATLAB图像处理识别商品条形码、图像分割

2023-08-31 20:33| 来源: 网络整理| 查看: 265

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界面操作

实际效果 产品信息库

强调文本* _强调文本_ [形态学处理] 在这里插入图片描述 探测边界,分割条形码 在这里插入图片描述

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 实验室设备网 版权所有