【条形码识别】条形码中数字的识别的matlab仿真
运行可以看到如下的结果。
第一个图:原始的图片
第二个图:灰度图
第三个图:加入噪声的图片
第四个图:滤波以后的图片
最后识别出来的条形码为:
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仿真相关推荐
- matlab如何看机器人末端坐标,关于RobotStudio中机器人末端位置的MATLAB仿真验证
关于RobotStudio中机器人末端位置的MATLAB仿真验证 最近事情贼多,感觉有点乏力. 主要是最近在着手写一篇关于机器人轨迹规划的文章.随之而来的,当然是一堆的仿真,以及实验平台的搭建,还要想 ...
- 数字双向码的matlab仿真,数字双相码的仿真 文字版.pdf
通信原理上机实验报告 年级: 姓名: 学号: 时间: 数字双相码的仿真 一.实验目的 1.熟悉MATLAB软件的工作环境 2.熟练掌握数字双相码的MATLAB仿真 3.熟练掌握数字双相码的Simuli ...
- Kalman滤波在船舶GPS导航定位系统中的应用(含MATLAB仿真)
Kalman滤波在船舶GPS导航定位系统中的应用(含MATLAB仿真) 1.原理介绍 2.MATLAB仿真代码 Kalman滤波 计算欧氏距离 3.仿真结果 figure1 figure2 1.原理介 ...
- 烟雾识别的matlab仿真
1.问题描述: 烟雾识别的matlab仿真 2.部分程序: clc; clear all; k=input('Enter the file name','s'); % input image; col ...
- BP神经网络识别手写数字项目解析及matlab实现
BP神经网络指传统的人工神经网络,相比于卷积神经网络(CNN)来说要简单些. 人工神经网络具有复杂模式和进行联想.推理记忆的功能, 它是解决某些传统方法所无法解决的问题的有力工具.目前, 它日益受到重 ...
- 超级干货:BPSK/QPSK数字调制系统误码率MATLAB仿真
本文旨在通过简单实例来对基于MATLAB的数字调制解调系统仿真进行一个较为全面的介绍,并加深对一些基础知识的理解.且有详细解释大多数人在进行数字调制MATLAB仿真时遇到的大部分问题. 数字调制的概念 ...
- 数字双向码的matlab仿真,matlab2016 ccs
(s 简称 CCSLink)提供了 MATLAB.TI DSP 集成开发环 境(CCS)和硬件 DSP 的双向连接,允许开发者在 MATLAB 的 环境下就可以完成对 CCS 和硬件目标 DSP 的操 ...
- 【发票识别】基于图像形态学处理的发票数字识别的MATLAB仿真
1.软件版本 matlab2021a 2.部分核心代码 clc; clear; close all; warning off; addpath 'func\'alpha = 0.9; LL = 3; ...
- 【GPS识别】低信噪比环境下GPS信号识别的MATLAB仿真
1.软件版本 MATLAB2021a 2.本算法理论知识 如图GPS系统的星座部分是由21颗工作卫星和3颗在轨备用卫星组成,其高度为20183km,这24颗卫星均匀分布在6个等间隔的.相对轨道面倾角为 ...
- 【pointnet++点云识别】基于pointnet++的点云地理数据识别的MATLAB仿真
1.软件版本 matlab2021a 2.本算法理论知识 根据http://stanford.edu/~rqi/pointnet2/中关于pointnet++的介绍可知,该算法的基本构架如下所示: 根 ...
最新文章
- 报名 | 计算机视觉讲座:师兄带你从菜鸟到实战!
- SpringMVC 学习系列 (3) 之 URL请求到Action的映射规则
- python怎么读取列表-python如何读取列表中的参数
- 我曾七次鄙视自己的灵魂
- Navicat Premium mysql
- Keil5 编译生成bin二进制文件的设置方法
- 基于React-Native0.55.4的语音识别项目全栈方案
- C# 读取excel
- url的地址循环怎么写_电子邮件地址怎么写
- 网络阅卷系统服务器配置,网上阅卷系统建设实施方案.doc
- Python 各种画图
- Unity ToLua 使用教程
- 电脑通话有回音解决方案 使用电脑通话时有回音(可以听到对方电脑中自己说话的声音)电脑通话回音解决方案【以Thinkpad Win10系统为例】
- DELPHI7对日期格式的处理
- java for 下标_java中foreach语句如何获取数组下标
- 大年初五嘉定观影《天将雄师》后点评
- 53. 验证外星语词典
- IC618的资源分享及IC618电路显示黄色问题
- 百度地图聚合中的marker添加label后移动、放大缩小时label消失的问题download
- 朴素贝叶斯案例之text classification
热门文章
- 做了快6年研发的女程序员,转行做什么合适呢?
- java中css js是什么_js、jsp、css都是什么意思?
- 双活数据中心解决方案
- 下载并安装Pandoc
- mysql用其他用户登录报错_mysql如何登录创建的用户
- 使用sql语句在命令行下载mysql表格数据
- 电脑主板详细介绍(细图!!)
- 我们真的会去吃3D打印食品吗?
- Intellij IDEA 提示cannot find declaration to go to 解决方法
- Android studio profiler中的Shallow size和retained sizes是什么意思