OpenCv案例(十): 基于OpenCvSharp识别二维码

这篇具有很好参考价值的文章主要介绍了OpenCv案例(十): 基于OpenCvSharp识别二维码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1:二维码在工业和工作生活中应用广泛,下面基于OpenCvSharp识别图像中二维码;

2:函数:OpenCvSharp中,QRCodeDetector 有两个相关API分别实现二维码检测与二维码解析。

          public string DetectAndDecode(InputArray img, out Point2f[] points, OutputArray straightQrcode = null);

其中:

        //
        //  摘要:
        //     Both detects and decodes QR code
        //
        //  参数:
        //   img:
        //     grayscale or color (BGR) image containing QR code.
        //
        //   points:
        //     opiotnal output array of vertices of the found QR code quadrangle. Will be empty
        //     if not found.
        //
        //   straightQrcode:
        //     The optional output image containing rectified and binarized QR code
       

  • img 为输入图像,灰度或者彩色图像;
  • points 是二维码ROI最小外接矩形顶点坐标;
  • straightQrcode 输出的是二维码区域ROI图像信息 返回的二维码utf-8字符串;
  • 返回值是已识别的二维码内容
        public string DetectQRCode(Mat src)
        {
            //src = Cv2.ImRead(@"C:\Users\1617\Desktop\Test\qr.png");
            //图像灰度
            Mat gray = new Mat();
            Cv2.CvtColor(src, gray, ColorConversionCodes.BGRA2GRAY);
            Cv2.ImShow("gray", gray);
            //二值化
            Mat threshold = new Mat();
            //Cv2.AdaptiveThreshold(gray, threshold, 255.0, AdaptiveThresholdTypes.MeanC, ThresholdTypes.Binary, 13, 2);
            Cv2.Threshold(gray, threshold, 0, 255, ThresholdTypes.Binary|ThresholdTypes.Otsu);
            Cv2.ImShow("threshold", threshold);
            //绘制轮廓

            //截取二维码有效区域
            //识别二维码
            QRCodeDetector qRCodeDetector = new QRCodeDetector();
            Point2f[] point2Fs;
            //Cv2.ImShow("gray", gray);
            Mat mat = new Mat();
            string code = qRCodeDetector.DetectAndDecode(src, out point2Fs, mat);
            //Point[][] contours;
            //HierarchyIndex[] hierarchies;
            //Cv2.FindContours(src, out contours, out hierarchies, RetrievalModes.Tree, ContourApproximationModes.ApproxSimple);
            //RNG rng = new RNG(12345);
            //for (int i = 0; i < point2Fs.Length; i++)
            //{
            //  Cv2.DrawContours(src, point2Fs, i, new Scalar(rng.Uniform(0, 255), rng.Uniform(0, 255), rng.Uniform(0, 255)), 6, LineTypes.Link4);

            //}
            Cv2.Rectangle(src, new Point((int)point2Fs[3].X, (int)point2Fs[1].Y), new Point((int)point2Fs[2].X, (int)point2Fs[2].Y), new Scalar(0, 255, 255), 2);
            Cv2.ImShow("src", src);
            return code;
        }

3:实测以下两张图片,一张手机拍摄的二维码图像,一张截图

 4:处理结果图像如下:

 内容:1234567

 内容:http://weixin.qq.com/r/GihgeEPEix70rQcb930I文章来源地址https://www.toymoban.com/news/detail-669559.html

到了这里,关于OpenCv案例(十): 基于OpenCvSharp识别二维码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 互联网加竞赛 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

    🔥 优质竞赛项目系列,今天要分享的是 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 物体检测就是对数字图像中一类特定的物体的

    2024年01月18日
    浏览(73)
  • C#中轻松实现二维码和条形码识别:OpenCvSharp和ZXing详细教程

      概述: 本教程使用OpenCvSharp和ZXing库,详细介绍了在C#中识别二维码和条形码的步骤。通过导入必要的命名空间、加载图像,并使用ZXing库进行二维码和条形码的识别,提供了清晰的示例代码。这方便了开发人员在项目中集成二维码和条形码识别功能。 要使用OpenCvSharp来分别

    2024年03月09日
    浏览(80)
  • 数字图像处理二维码识别python+opencv实现二维码实时识别

    数字图像处理二维码识别 python+opencv实现二维码实时识别 特点: (1)可以实现普通二维码,条形码; (2)解决了opencv输出中文乱码的问题 (3)增加网页自动跳转功能 (4)实现二维码实时检测和识别 代码保证原创、无错误、能正常运行(如果电脑环境配置没问题) 送二维

    2024年01月16日
    浏览(68)
  • AI生成二维码Stable diffusion生成可识别二维码【附完整教程】&【附完整案例】

    最近的炫酷QR比较火,所以今天给大家分享一下如何实现。首先我们知道QR二维码已经改变了信息的共享和获取方式。但是,QR码的视觉外观可能并不总是符合设计或艺术品的美学要求。为了解决这个问题,ControlNet for Stable Diffusion的工具在Stable Diffusion上可以将QR二维码信息隐藏

    2024年02月16日
    浏览(50)
  • OpenCV应用实例 —— 二维码识别与定位

    定位二维码不仅仅是为了识别二维码;还可以通过二维码对图像进行水平纠正以及相邻区域定位。定位二维码,不仅需要图像处理相关知识,还需要分析二维码的特性,本文先从二维码的特性讲起。 二维码在设计之初就考虑到了识别问题,所以二维码有一些特征是非常明显的

    2024年02月12日
    浏览(59)
  • opencv实战--角度测量和二维码条形码识别

    首先导入一个带有角度的照片 然后下面的代码注册了一个鼠标按下的回调函数, 还有一个点的数列,鼠标事件为按下的时候就记录点,并画出点,由于点是画在图像上面的,那么就要求了img是需要刷新的所以将他们放在while True里面 当有按键按下的的时候就把图片归为原来的

    2024年02月16日
    浏览(61)
  • Python Opencv实践 - 二维码和条形码识别

            使用pyzbar模块来识别二维码和条形码。ZBar是一个开源软件,用来从图像中读取条形码,支持多种编码,比如EAN-13/UPC-A、UPC-E、EAN-8、代码128、代码39、交错2/5以及二维码。         pyzbar是python封装ZBar的模块,我们用它来做条形码和二维码的识别。         安装方法:

    2024年02月04日
    浏览(47)
  • Python - Opencv + pyzbar实时摄像头识别二维码

    直接上代码: 简单使用的记录

    2024年02月15日
    浏览(46)
  • 计算机竞赛 python+opencv+深度学习实现二维码识别

    🔥 优质竞赛项目系列,今天要分享的是 🚩 python+opencv+深度学习实现二维码识别 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:3分 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/danch

    2024年02月12日
    浏览(61)
  • Python - OpenCV识别条形码、二维码(已封装,拿来即用)

    此代码可识别条形码和二维码,已封装好,拿来即用: 结果:

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包