C# OpenCV QRcode scanner

2021. 1. 27. 09:00OpenCV/OpenCV C#

반응형

ZXing.Net 을 이용한 QRcode scanner

프로젝트 -> Nuget 패키지 관리 -> ZXing.Net 설치

1

실행코드

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Threading.Tasks;
using OpenCvSharp;
using OpenCvSharp.Blob;
using ZXing;

namespace QRcodeApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Mat src = Cv2.ImRead("../../qrcode2.png");

            // create a barcode reader instance
            var barcodeReader = new BarcodeReader();

            // create an in memory bitmap
            var barcodeBitmap = (Bitmap)Bitmap.FromFile("../../qrcode2.png");

            // decode the barcode from the in memory bitmap
            var barcodeResult = barcodeReader.Decode(barcodeBitmap);

            // output results to consoles
            Console.WriteLine($"Decoded barcode text: {barcodeResult?.Text}");
            Console.WriteLine($"Barcode format: {barcodeResult?.BarcodeFormat}");


            Cv2.ImShow("src", src);

            Cv2.WaitKey(0);
            Cv2.DestroyAllWindows();

        }
    }
}

 

결과

2

 

부족한점

.png 파일만 가능하고 이미지는 해석못한다.

출처

https://jeremylindsayni.wordpress.com/2016/04/02/how-to-read-and-create-barcode-images-using-c-and-zxing-net/

 

How to read and create barcode images using C# and ZXing.NET

I’ve written a few posts recently on computer vision and optical character recognition. This time, I thought I’d write about a more traditional way of allowing computers to read printed…

jeremylindsayni.wordpress.com



WindowForm

실행코드

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZXing;
using ZXing.Common;


namespace QRcodeApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public string decoded;

        private void button1_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = Bitmap.FromFile("../../qrcode.png");
            pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

            BarcodeReader reader = new BarcodeReader(); 
            Result result = reader.Decode((Bitmap)pictureBox1.Image);
            if (result != null)
            {
                decoded = "Decode : " + result.ToString() + "\r\n Type : " + result.BarcodeFormat.ToString();
                if (decoded != "")
                {
                    textBox1.Text = decoded;
                }
            }
            else 
                MessageBox.Show("바코드나 QR코드를 비추세요!");
        }
    }
}

 

결과

3

 

부족한점

.png 파일만 가능하고 이미지는 해석못한다.

출처

https://jjungwooo.tistory.com/98

 

C#OpenCV를 이용하여 바코드&QR코드 리더기 만들기

저번에 저장한 코드에서 이어서 만들었습니다. 구글링을 몇시간 하다보니.. ZXing을 사용하라는데 무슨소린지 몰라서.. 안드로이드는 코드도 많고 자료가 많은데 c#은 정말 자료가 없었습니다.....

jjungwooo.tistory.com

 

반응형

'OpenCV > OpenCV C#' 카테고리의 다른 글

C# OpenCV labeling  (0) 2021.01.19
C# OpenCV Transformation  (0) 2021.01.17
C# OpenCV labeling Segmentation  (0) 2021.01.12
C# OpenCV histogram gray color BGR 그리기  (0) 2021.01.09
C# OpenCV 이미지 전처리  (0) 2021.01.06