第16章_QR软解码-解码流程2获取图像

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
(3)把本书配套资料提供的二维码驱动类库文件 “BitMapLib.dll、SoftwareDecodeLib.dll”(“\03. 软件与工具\05.类库\PC端”底下)拷贝到 “Demo4_QR软解码-解码流程2获取图像”项目目录下 。在解决方案资源管理器中添加动态库。
(2) public event EventHandler<ByteToBitMap.PicData> OnGetData; 功能:回调方法 参数:无 返回:
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
(3) public void MakeBitMapAsyc(byte[] _bytes, int _width, int _height)
联世界 育未来——创新物联教育
2.实验原理
二、SoftwareDecodeLib类库下SoftDecode类(软解 码类)简介 以下介绍本实验中所使用到SoftDecode类的主要方法。
(1) public bool Open(string com, int baudrate); 功能:打开串口 参数:com:串口号,baudrate:波特率 返回:true 已打开 false未打开
联世界 育未来——创新物联教育
七、点击“位图图像”,如图16-5所示;
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
八、点击“符号图像”,如图16-6所示;
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育

1.实验描述
2.实验原理 3.实验实现

4.关键代码解析
战略性信息产业教育服务提供商
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
(6) public int getGrayscaleBitmap();
功能:获取灰度图 参数:无 返回:0成功,非0失败
(7) public int getBinaryBitmap();
功能:获取位图 参数:无 返回:0成功,非0失败
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育

1.实验描述
2.实验原理 3.实验实现

4.关键代码解析
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
4.关键代码解析
(1)定义对象
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
(2)回调方法获取图像
战略性信息产业教育服务提供商
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
(1) public static Bitmap CreateBitmap(byte[] originalImageData, int originalWidth, int originalHeight); 功能:使用byte[]数据,生成256色灰度 BMP 位图 参数:originalImageData:byte[]数据,originalWidth:位图宽, originalHeight:位图高 返回:位图
联世界 育未来——创新物联教育
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
图16-7
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
(2)按照图16-7布局往窗体MainWindow上增加控件 ,并按表16-1所示设置各控件属性。
表16-1
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
注意:在代码窗口中,需用语句“using SoftwareDecodeLib;”来导入SoftDecode类的命名空 间, 需用语句“using System.Drawing;”来导入 Bitmap的命名空间, 需用语句“using ponentModel;”来导入 BackgroundWorker的命名空间。 第三步:测试系统,检测系统功能是否正常。
联世界 育未来——创新物联教育
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
(3)二值化图片回调
战略性信息产业教育服务提供商
(8) public int 参数:无 返回:0成功,非0失败
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
三、BitMapLib类库下ByteToBitMap类(位图转化类 )简介 以下介绍本实验中所使用到ByteToBitMap类的主要方法 。
功能:异步绘制二值化位图 参数:无 返回:位图
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
四、以下介绍本实验中所使用到Util类的主要方法。
(1) public static ImageSource ChangeBitmapToImageSource(Bitmap bitmap); 功能:从bitmap转换成ImageSource 参数: bitmap:位图 返回:ImageSource
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
(4) public event EventHandler<Data> OnGetData; 功能:回调方法 参数:无 返回: (5) public byte[] getOriginalBitmap();
功能:获取原始图像 参数:无 返回:byte数组
第16章 QR软解码-解码流程2获取图像

1.实验描述
2.实验原理 3.实验实现

4.关键代码解析
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
1.实验描述
【实验目的】 了解二维码基本概念;
理解QR码的解码原理; 掌握二维码软解码获取图像的代码实现。
战略性信息产业教育服务提供商
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
图16-2
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
五、点击“原始图像”,如图16-3所示;
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
六、点击“灰度图”,如图16-4所示;
战略性信息产业教育服务提供商
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
(2) public bool Close();
功能:关闭串口 参数:无 返回:true 已关闭 false未关闭 (3) public int startDecoding(); 功能:开始解码 参数:无 返回:0:成功 1:失败 -2:扫描超时 -1:扫描出错
(4)右键MainWindow设计窗体点击“查看代码”, 切换至MainWindow的代码编辑窗口;参照参考代码( “\03.软件与工具\03.源码\PC端”)编写相应代码,实 现程序功能。修改代码错误,直至没有错误提示产生,保 存项目所有文件。
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
联世界 育未来——创新物联教育
【实验内容】 通过串口线连接PC端的COM口与二维码实验箱COM口 ;
二、在二维码实验箱的显示屏上选择软解码模块; 三、在PC端打开配套资料的“\03.软件与工具\02.可执 行程序\Demo4_QR软解码-解码流程2获取图像”中的可 执行程序,出现如图16-1所示的实验初始界面;
功能:异步绘制二值化位图 参数:无 返回:无
(4) public static Bitmap ToGrayBitmap(byte[] bytes, int width, int height);
功能:获取8*8灰度图 参数:无 返回:位图
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
(5) public static Bitmap MakeBitMap(byte[] bytes, int width, int height);
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育

1.实验描述
2.实验原理 3.实验实现

4.关键代码解析
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
3.实验实现
实验步骤:
第一步: 硬件连接 通过串口线连接二维码实验箱的串口与PC端的串口,在 二维码实验箱触摸彩屏选择“软解码”模块。 第二步:创建“Demo4_QR软解码-解码流程2获取图像 ”WPF应用程序。 (1)打开Visual Studio 2012,新建“Demo4_QR软 解码-解码流程2获取图像”项目。
战略性信息产业教育服务提供商
联世界 育未来——创新物联教育
图16-1
战略性信息产业教育服务提供商 联世界 育未来——创新物联教育
四、串口选择COM1(注意选择实际使用的串口),点击 “连接”,提示“连接成功”;点击“开始解码”,进行 扫描,如果扫描成功,则听到“嘀”一声,在界面上则显 示“本次码词长度:7”(显示具体二维码的实际码词长 度),如图16-2所示;
相关文档
最新文档