运行可以看到如下的结果。

第一个图:原始的图片

第二个图:灰度图

第三个图:加入噪声的图片

第四个图:滤波以后的图片

最后识别出来的条形码为:

clc;
clear;
close all;
warning off;%% 读取图片并模拟实际情况,添加噪声并滤波
%% 读取图片并模拟实际情况,添加噪声并滤波
%% 读取图片并模拟实际情况,添加噪声并滤波
%噪声的大小
noise_level = 0.02;
%滤波参数
filter_area = 3;
figure;
%读取图片
bar_image       = imread('images\2.bmp');  %读输入条形码图片
subplot(221);imshow(bar_image);title('原始图像');
%图片转换为灰度图
if isrgb(bar_image) == 1
bar_image       = rgb2gray(bar_image);
else
bar_image       = bar_image;
end
subplot(222);imshow(bar_image);title('原始图像的灰度图');
%添加噪声
bar_image_noise = imnoise(bar_image,'salt & pepper',noise_level);
subplot(223);imshow(bar_image_noise);title('加入噪声后的图像');
%进行中值滤波
bar_image_filter= medfilt2(bar_image_noise,[filter_area filter_area]);
subplot(224);imshow(bar_image_filter);title('滤波之后的图像');%% 参数初始化
%% 参数初始化
%% 参数初始化
%二值化参数
level = 0.8;
%左边和右边数据编码
codes = [3211,2221,2122,1411,1132,1231,1114,1312,1213,3112;    1123,1222,2212,1141,2311,1321,4111,2131,3121,2113];
%第一位数据编码
first_codes = [31,20,18,17,12,6,3,10,9,5];
%求灰度图的大小
[height,width]      = size(bar_image_filter);
%二值化参数
bar_image_filter_10 = im2bw(bar_image_filter,level);%% 条码检测
%% 条码检测
%% 条码检测%检测59根条形码
l = 0;
for i=1:heightk = 1;l = l+1;for j=1:width-1%比较同一行相邻两点的颜色是否一致if bar_image_filter_10(i,j)>bar_image_filter_10(i,j+1) | bar_image_filter_10(i,j)< bar_image_filter_10(i,j+1)  Y_position(l,k) = j; %记录坐标k = k+1;        endif k>61 l = l-1;breakendendif k<61l = l-1;end
end[height,width] = size(Y_position);if height<=1 disp('无效的条形码');
else%条形码的宽度bar_width = func_Tiaox_width(Y_position,height,width);%条形码的宽度[bar_sum2,Left_bar_number,Right_bar_number]=func_eachwidth(bar_width,height);bar_number      = '';bar_fist_number = 0;first           = 2;%左边编码查出条形码编码[bar_fist_number,bar_number] = func_leftnumber(bar_sum2,codes,bar_fist_number,Left_bar_number,bar_number,first);%右边编码查出条形码编码   bar_number = func_rightnumber(codes,bar_number,Right_bar_number);%从第一位数据编码表中查出第一位数字bar_number = func_findnumber(bar_fist_number,first_codes,bar_number);%校验码check_code = func_codecheck(bar_number);if check_code==str2num(bar_number(13))disp('条形码为:'); for i=1:length(bar_number)final{i} = bar_number(i);  end endfinal
end

A09-14

【条形码识别】条形码中数字的识别的matlab仿真相关推荐

  1. matlab如何看机器人末端坐标,关于RobotStudio中机器人末端位置的MATLAB仿真验证

    关于RobotStudio中机器人末端位置的MATLAB仿真验证 最近事情贼多,感觉有点乏力. 主要是最近在着手写一篇关于机器人轨迹规划的文章.随之而来的,当然是一堆的仿真,以及实验平台的搭建,还要想 ...

  2. 数字双向码的matlab仿真,数字双相码的仿真 文字版.pdf

    通信原理上机实验报告 年级: 姓名: 学号: 时间: 数字双相码的仿真 一.实验目的 1.熟悉MATLAB软件的工作环境 2.熟练掌握数字双相码的MATLAB仿真 3.熟练掌握数字双相码的Simuli ...

  3. Kalman滤波在船舶GPS导航定位系统中的应用(含MATLAB仿真)

    Kalman滤波在船舶GPS导航定位系统中的应用(含MATLAB仿真) 1.原理介绍 2.MATLAB仿真代码 Kalman滤波 计算欧氏距离 3.仿真结果 figure1 figure2 1.原理介 ...

  4. 烟雾识别的matlab仿真

    1.问题描述: 烟雾识别的matlab仿真 2.部分程序: clc; clear all; k=input('Enter the file name','s'); % input image; col ...

  5. BP神经网络识别手写数字项目解析及matlab实现

    BP神经网络指传统的人工神经网络,相比于卷积神经网络(CNN)来说要简单些. 人工神经网络具有复杂模式和进行联想.推理记忆的功能, 它是解决某些传统方法所无法解决的问题的有力工具.目前, 它日益受到重 ...

  6. 超级干货:BPSK/QPSK数字调制系统误码率MATLAB仿真

    本文旨在通过简单实例来对基于MATLAB的数字调制解调系统仿真进行一个较为全面的介绍,并加深对一些基础知识的理解.且有详细解释大多数人在进行数字调制MATLAB仿真时遇到的大部分问题. 数字调制的概念 ...

  7. 数字双向码的matlab仿真,matlab2016 ccs

    (s 简称 CCSLink)提供了 MATLAB.TI DSP 集成开发环 境(CCS)和硬件 DSP 的双向连接,允许开发者在 MATLAB 的 环境下就可以完成对 CCS 和硬件目标 DSP 的操 ...

  8. 【发票识别】基于图像形态学处理的发票数字识别的MATLAB仿真

    1.软件版本 matlab2021a 2.部分核心代码 clc; clear; close all; warning off; addpath 'func\'alpha = 0.9; LL = 3; ...

  9. 【GPS识别】低信噪比环境下GPS信号识别的MATLAB仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 如图GPS系统的星座部分是由21颗工作卫星和3颗在轨备用卫星组成,其高度为20183km,这24颗卫星均匀分布在6个等间隔的.相对轨道面倾角为 ...

  10. 【pointnet++点云识别】基于pointnet++的点云地理数据识别的MATLAB仿真

    1.软件版本 matlab2021a 2.本算法理论知识 根据http://stanford.edu/~rqi/pointnet2/中关于pointnet++的介绍可知,该算法的基本构架如下所示: 根 ...

最新文章

  1. 报名 | 计算机视觉讲座:师兄带你从菜鸟到实战!
  2. SpringMVC 学习系列 (3) 之 URL请求到Action的映射规则
  3. python怎么读取列表-python如何读取列表中的参数
  4. 我曾七次鄙视自己的灵魂
  5. Navicat Premium mysql
  6. Keil5 编译生成bin二进制文件的设置方法
  7. 基于React-Native0.55.4的语音识别项目全栈方案
  8. C# 读取excel
  9. url的地址循环怎么写_电子邮件地址怎么写
  10. 网络阅卷系统服务器配置,网上阅卷系统建设实施方案.doc
  11. Python 各种画图
  12. Unity ToLua 使用教程
  13. 电脑通话有回音解决方案 使用电脑通话时有回音(可以听到对方电脑中自己说话的声音)电脑通话回音解决方案【以Thinkpad Win10系统为例】
  14. DELPHI7对日期格式的处理
  15. java for 下标_java中foreach语句如何获取数组下标
  16. 大年初五嘉定观影《天将雄师》后点评
  17. 53. 验证外星语词典
  18. IC618的资源分享及IC618电路显示黄色问题
  19. 百度地图聚合中的marker添加label后移动、放大缩小时label消失的问题download
  20. 朴素贝叶斯案例之text classification

热门文章

  1. 做了快6年研发的女程序员,转行做什么合适呢?
  2. java中css js是什么_js、jsp、css都是什么意思?
  3. 双活数据中心解决方案
  4. 下载并安装Pandoc
  5. mysql用其他用户登录报错_mysql如何登录创建的用户
  6. 使用sql语句在命令行下载mysql表格数据
  7. 电脑主板详细介绍(细图!!)
  8. 我们真的会去吃3D打印食品吗?
  9. Intellij IDEA 提示cannot find declaration to go to 解决方法
  10. Android studio profiler中的Shallow size和retained sizes是什么意思