Python OpenCV实践-微信开源二维码检测算法对比

前言

前些日子微信在opencv4.5中开源了一个二维码检测和识别的代码和模型,据说检测速度快鲁棒性好,因此拿来与opencv自带的二维码检测器进行对比

测试用图如下:
在这里插入图片描述

1.透射变换

有时候没法正对二维码来扫码,本文通过透射变换来模拟这种场景

透射变换是指将图像从视平面投射到另一个平面,需要通过变换前后平面上对应的四组点计算变换矩阵,

import cv2
import numpy as np
import random
import time

def perspectimg(image, pts1, pts2):
# pts1.shape = [4, 2]
# pts2.shape = [4, 2]
    h, w = image.shape[:2]
    H = cv2.getPerspectiveTransform(pts1.astype(np.float32), pts2.astype(np.float32))
    out = cv2.warpPerspective(image, H, (2*w, 2*h))
    return out

img = cv2.imread('20210106141915150.png')
p3 = np.float32([[25, 25], [199, 25], [199, 199], [25, 199]])
p4 = np.float32([[45, 25], [205, 65], [204, 194], [49, 230]])
img = perspectimg(img, p3, p4)
cv2.imshow('img', img)

在这里插入图片描述

2.opencv自带二维码检测器QRCodeDetector()

使用opencv自带的二维码检测器的主要流程是

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值