СЦБИСТ - железнодорожный форум, блоги, фотогалерея, социальная сеть
Это сообщение показано отдельно, перейти в тему, где размещено сообщение: Работа с QR кодами
Старый 23.09.2023, 07:23   #1 (ссылка)
Crow indian
 
Аватар для Admin

Регистрация: 21.02.2009
Возраст: 40
Сообщений: 30,149
Поблагодарил: 398 раз(а)
Поблагодарили 6009 раз(а)
Фотоальбомы: 2607 фото
Записей в дневнике: 798
Репутация: 126146

Тема: Работа с 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);

    }



}
Admin вне форума   Цитировать 14
 Нажмите здесь, чтобы написать комментарий к этому сообщению  
 

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