Quantcast
Channel: CSharp Forum Latest Questions
Viewing all articles
Browse latest Browse all 32755

ASP.net C# : How to create a QR code scanner with webcam?

$
0
0
Facing problem in detecting and decoding, current phase just can open the webcam, but can't detect the QR code. Any suggestion?

I was using the zxing for the QR code decode, and Aforge to connected the webcam.




Here the code:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using com.google.zxing.qrcode;
using com.google.zxing.qrcode.detector;
using COMMON = com.google.zxing.common;
using com.google.zxing;
using AForge.Video;
using AForge.Video.DirectShow;



namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public QRCodeReader reader = new QRCodeReader();
        public Bitmap current { get; private set; }
        //public event EventHandler<ProcessArgs> ResultFound;
        Bitmap video;
        public bool Run { get; set; }
        public bool newBitmap { get; set; }
        
        private FilterInfoCollection VideoCaptureDevices;
        private VideoCaptureDevice FinalVideo;
       // com.google.zxing.Reader reader = new com.google.zxing.MultiFormatReader();
        

        public Form1()
        {
            InitializeComponent();

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            foreach (FilterInfo VideoCaptureDevice in VideoCaptureDevices) 
            {
              comboBox1.Items.Add(VideoCaptureDevice.Name);
            }
            comboBox1.SelectedIndex = 0;

            FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[comboBox1.SelectedIndex].MonikerString);
            FinalVideo.NewFrame += new NewFrameEventHandler(FinalVideo_NewFrame);
            FinalVideo.Start();
            
            
            
           
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //GetQRValue(video);

            LuminanceSource source = new RGBLuminanceSource(video, video.Width, video.Height);
            com.google.zxing.BinaryBitmap bitmap = new com.google.zxing.BinaryBitmap(new COMMON.HybridBinarizer(source));
            Result result;

            try
            {
                result = new MultiFormatReader().decode(bitmap);
                label1.Text = result.Text;
            }
            catch (ReaderException re)
            {

                label1.Text = re.Message;
            }

           
        }

        void FinalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            video = (Bitmap)eventArgs.Frame.Clone();
            pictureBox1.Image = video;
            if (Detect( video)!="")
            {
                button2.Visible = false;
            }
            if (GetQRValue(video) != "")
            { 
            }
            
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (FinalVideo.IsRunning)
            {
                FinalVideo.Stop();
            }
        }
public string Detect(Bitmap bitmap)
        {
            try
            {
               com.google.zxing.LuminanceSource source = new RGBLuminanceSource(bitmap, bitmap.Width, bitmap.Height);
               var binarizer = new HybridBinarizer(source);
              var binBitmap = new BinaryBitmap(binarizer);
             BitMatrix bm = binBitmap.BlackMatrix;
                  Detector detector = new Detector(bm);
                  DetectorResult result = detector.detect();

                 string retStr = "Found at points ";
                  foreach (ResultPoint point in result.Points)
                  {
                      retStr += point.ToString() + ", ";
                  }

                  return retStr;
              }
              catch
              {
                  return "Failed to detect QR code.";
              }
          }
     }
}


Viewing all articles
Browse latest Browse all 32755

Trending Articles