MATLAB 长度和像素_matlab之随心所欲创建QR二维码

LEAD

感谢关注matlab爱好者公众号!如果公众号文章对您有帮助,别忘了点击分享和“在看”哦!若您对公众号有什么意见或建议,请在公众号中回复或在任意文章底部留言!

799ef4b940cb75005b5f88d5c528d937.png

二维码已经成为日常中不可或缺的工具,使用它可以轻松地进行支付交易、添加好友、传递信息,化繁为简,极大便捷了人们的生活。

今天给大家介绍使用ZXing库文件生成二维码的方法,ZXing是使用Java语言编写一种开源的、多格式的1D/2D条形码图像处理库。本文使用的是ZXing的dll文件,使用前需要使用NET.addAssembly函数将相关类库加载到matlab中,ZXing库中有很多实例方法,可以通过methodsview函数进行详细查看。

以下是具体实现程序:

% 读取logo图片I = imread('logo.jpg');% 取logo大小[Lx,Ly,~] = size(I);% 定义二维码大小len = 600;% 将 .NET 程序集添加至 MATLABasmInfo = NET.addAssembly([pwd,'\zxing.dll']);% methodsview ZXing.MultiFormatWriter% 创建MultiFormatWriter类的对象writer = ZXing.MultiFormatWriter();% 创建泛型特化实例hints = NET.createGeneric('System.Collections.Generic.Dictionary', {'ZXing.EncodeHintType', 'System.Object'});% 采用utf-8编码以支持中文显示hints.Add(ZXing.EncodeHintType.CHARACTER_SET, 'utf-8')% 调用MultiFormatWriter类的成员函数encode将指定内容加密成bitmap对象bitM = writer.encode('感谢关注matlab爱好者!', ZXing.BarcodeFormat.QR_CODE,len,len,hints);% 将对象转换成字符串QR = char(bitM.ToString());% 删除字符串中的换行符'\r\n',其中\r的值为13,\n的值为10QR(QR==10) = [];QR(QR==13) = [];% 删除分隔像素的空格nQR = QR(1:2:end);% 将字符串转换成len*len的字符串矩阵nQR = reshape(nQR, len, len);% 二值化字符串nQR(nQR~='X') = 255;nQR(nQR=='X') = 0;% 定义新矩阵以组合logo和QR码图像nm = 255*ones(len,len,3);nm(:,:,1) = nQR;nm(:,:,2) = nQR;nm(:,:,3) = nQR;nm(round(len/2-Lx/2):round(len/2-Lx/2)+Lx-1,round(len/2-Ly/2):round(len/2-Ly/2)+Ly-1,:) = I;% 强制转换为uint8型数据nm = uint8(nm);imshow(nm);

需要zxing.dll以及程序中其他相关文件的小伙伴请在公众号中回复“二维码”、“QR”或“ZXing”即可获取下载链接。

参考资料:

[1] https://github.com/micjahn/ZXing.Net

[2] http://blog.sina.com.cn/s/blog_4513dde60101vykn.html

[3] https://blog.csdn.net/qq_18995069/article/details/80393078

温馨提示

长期坚持创作不易,如果您喜欢这篇推文,烦请有空点个赞,以资鼓励!喜欢就关注一下哦,谢谢!

看完还想看 (点击下方文字直接访问)

数值优化方法—迭代法&终止条件

科研小助手推荐 第六期

Matlab任意两点之间绘制带箭头的直线

MATLAB快速入门----处理图形对象

Matlab图片水印技术

c650ffc124f9444cf3a36de44e4395b0.png f731f0db7d351656c8f9751a603bba8c.png 6e070f8ada3fc70cc04e86827b546902.png 55f422fe59dea7643ba81f16c832bb90.png 在看点这里 523a5196e9d3b0059408fa413252347c.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值