СЦБИСТ - железнодорожный форум, блоги, фотогалерея, социальная сеть

СЦБИСТ - железнодорожный форум, блоги, фотогалерея, социальная сеть (https://scbist.com/)
-   OpenCV (https://scbist.com/opencv/)
-   -   Работа с QR кодами (https://scbist.com/opencv/56328-rabota-s-qr-kodami.html)

Вы просматриваете версию для печати. Если вы хотите увидеть статью полностью - перейдите по ссылке

Admin 23.09.2023 07:23

Работа с QR кодами
 
Работа с QR кодами

Предварительно установить Nuget-пакет QRCoder, Emgu

Код:

using Emgu.CV;
using Emgu.CV.Face;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using Emgu.Util;
using System.IO;
using QRCoder;
using QRCodeEncoderLibrary;


Код:

public abstract class QRCode
{
    public QRCode()
    {


    }


    public Mat DetectQRCode(Image<Gray, byte> img)
    {

        Mat ret = new Mat();
        QRCodeDetector detector = new QRCodeDetector();


        if (detector.Detect(img.Mat, ret))
            return ret;

        return null;

    }








    public (Image<Gray, byte>, string) DercyptQRCode(Image<Gray, byte> img)
    {

        Mat ret = new Mat();
        Mat ret2 = new Mat();

        QRCodeDetector detector = new QRCodeDetector();



        if (!detector.Detect(img.Mat, ret))
            return (null, "Не найдено");


        string x = detector.Decode(img.Mat, ret, ret2);

        if (x == "")
            return (null, "Не найдено");


        return (ret2.ToImage<Gray, byte>(), x);

    }





    public Image GenerateQRCode(string src)
    {


        QREncoder enc = new QREncoder();

        enc.Encode(src);

        return (Image)enc.CreateQRCodeBitmap();



    }




















    /// <summary>
    ///
    /// </summary>
    /// <param name="src"></param>
    /// <returns></returns>

    public static Image MatToImage(Mat src)
    {

        return (Image)Emgu.CV.BitmapExtension.ToBitmap(src);

    }



}



Часовой пояс GMT +3, время: 16:54.

Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot


Яндекс.Метрика