python的qrcode怎么设置文字背景

python的qrcode怎么设置文字背景,第1张

使用步骤

1.引入库

import qrcode # pip install qrcode

from PIL import ImageFont, ImageDraw, Image # pip install qrcode PIL

复制

2.程序

list_ = ["熊大", "熊二", "光头强", "肥波", "毛毛", "图图"]

for contain in list_:

qr = qrcode.QRCode(version=2,

error_correction=qrcode.constants.ERROR_CORRECT_H,

)

qr.add_data(contain)

qr.make(fit=True)

img = qr.make_image()

img.save(f'{contain}(二维码).png')

img = Image.open(f'{contain}(二维码).png')

draw = ImageDraw.Draw(img)

ttfront = ImageFont.truetype('msyh.ttc', 14) # 字体文件msyh.ttc,需要查找下载

content = contain

draw.text((145, 300), content, font=ttfront) # 文字位置,正文内容,文字RGB颜色,字体

img.save(f'{contain}(二维码).png')

print(f'共{list_}张带字二维码绘制完成')

复制

3.参数解释

1.version:控制二维码的大小,取值范围从1到40。取最小值1时,二维码大小为21*21。取值为 None (默认)或者使用fit=true参数(默认)时,二维码会自动调整大小(数值越大二维码越复杂)。

2.error_correction:控制二维码纠错级别。

        ERROR_CORRECT_L:大约7%或者更少的错误会被更正

        ERROR_CORRECT_M:默认值,大约15%或者更少的错误会被更正。

        ERROR_CORRECT_Q:大约25%或者更少的错误会被更正。

        ERROR_CORRECT_H:大约30%或者更少的错误会被更正。

3.box_size:控制二维码中每个格子的像素数,默认为 10。

4.border:控制二维码四周留白包含的格子数,默认为4。

5.image_factory:选择生成图片的形式,默认为 PIL 图像。

6.mask_pattern:选择生成图片的的掩模。

4.效果展示

关于如何用Python识别二维码可以看我同专栏的下面这篇文章。

Python用opencv实现动态识别二维码,以及加强版Python GUI(图像用户界面编程)_"殇影的博客-CSDN博客Python用OpenCv实现动态识别二维码,以及加强版Python GUI(图像用户界面编程)。动态识别二维码信息,利用电脑摄像头动态扫描二维码,扫描视频中的二维码。QRCodeDetector

https://blog.csdn.net/weixin_45694843/article/details/128046847?spm=1001.2014.3001.5502

你可以看看Opencv里的混合高斯模型方法,当前景里的一运动目标停止后,该模型会自动的将其当做背景来处理,但混合高斯模型比较耗时。还有一个方法就是用滑动平均来做,即:

cvRunningAvg( const CvArr* image, CvArr* acc, double alpha, const CvArr* mask=NULL )

该函数通过设置Alpha的值来更新背景,Alpha越大,背景更新得越快。

在我们的某项业务中,需要通过自研的智能硬件“自动化”地拍摄一组组手机的照片,这些照片有时候因为光照的因素需要考虑将背景的颜色整体替换掉,然后再呈现给 C 端用户。这时就有背景替换的需求了。

使用 OpenCV ,通过传统的图像处理来实现这个需求。

首先想到的是使用 K-means 分离出背景色。

大致的步骤如下:

K-means 算法思想为:给定n个数据点{x1,x2,…,xn},找到K个聚类中心{a1,a2,…,aK},使得每个数据点与它最近的聚类中心的距离平方和最小,并将这个距离平方和称为目标函数,记为Wn,其数学表达式为:

K-means 算法基本流程:

方案一的算法并不是对所有手机都有效,对于一些浅色的、跟背景颜色相近的手机,该算法会比较无能为力。

于是换一个思路:

图像锐化是使图像边缘更加清晰的一种图像处理方法。

其中,addWeighted 函数是将两张大小相同、类型相同的图片进行融合。数学公式如下:

其实,我尝试过用 OpenCV 多种方式实现该功能,也尝试过使用深度学习实现。目前还没有最满意的效果。后续,我会更偏向于使用深度学习来实现该功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11808689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存