c# - QR码网络摄像头扫描仪c#

标签 c# webcam qr-code barcode-scanner

我尝试了各种QR 码 库和网络摄像头捕获 技术。在特定时间间隔内拍摄照片,然后将其发送到QR 码 库似乎是个好主意,但检测到QR 码 的成功率极低。谁能推荐一种通过网络摄像头检测QR 码 的更好方法?非常感谢:)

代码:

void FinalVideo_NewFrame(对象发送者,NewFrameEventArgs eventArgs) {

        Bitmap video = (Bitmap)eventArgs.Frame.Clone();

        pictureBox1.Image = video;
        try
        {
            com.google.zxing.qrcode.decoder.Decoder objDecoder = new com.google.zxing.qrcode.decoder.Decoder();
            Bitmap bitmap = new Bitmap(pictureBox1.Image);
            com.google.zxing.LuminanceSource source = new RGBLuminanceSource(bitmap, bitmap.Width,bitmap.Height); 
            var binarizer = new HybridBinarizer(source);
            var binBitmap = new BinaryBitmap(binarizer);
            QRCodeReader qrCodeReader = new QRCodeReader();
            string str = new MultiFormatReader().decode(binBitmap).Text;
            MessageBox.Show(str);

        }
        catch
        {

        }

我还使用了 messaging.toolkit.qrcode.dll。 代码如下:

private void mainWinForm_Load(object sender, EventArgs e)

    {

        webcam = new WebCam();
        webcam.InitializeWebCam(ref imgVideo);
        QRCodeDecoder decoder = new QRCodeDecoder();
        try
        {

            MessageBox.Show(decoder.decode(new QRCodeBitmapImage(imgCapture.Image as Bitmap)));
        }

        catch
        {
            //Do nothing
        }

    }

最佳答案

尝试使用 AForge.NET 库从您的网络摄像头捕获视频,然后使用 ZXing.Net 库读取二维码。

您可以遵循一些像这样的 Youtube 教程,这些教程将展示如何使用 AForge.Net 从网络摄像头获取视频。 https://www.youtube.com/watch?v=osAOpsRYqVs&t=311s

至于 QR 解码,我使用了以下代码,我每 1 秒执行一次:

`

    private void decode_QRtag()
    {
        try
        {
            //pictureBox1 shows the web cam video
            Bitmap bitmap = new Bitmap(pictureBox1.Image);

            BarcodeReader reader = new BarcodeReader { AutoRotate = true, TryHarder = true };
            Result result = reader.Decode(bitmap);
            string decoded = result.ToString().Trim();        
            //capture a snapshot if there is a match
            PictureBox2.Image = bitmap;
            textBox1.Text = decoded;
        }
        catch 
        {
        }
    }`

关于c# - QR码网络摄像头扫描仪c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17424360/

相关文章:

python - 如何使用OpenCV Beta 3.0.0和Python并排显示多个网络摄像头源?

opencv - USB网络摄像头在树莓派上拍摄照片太慢

android - 如果不安装第三方应用程序,是否无法在 Android 应用程序中读取 QR 码?

c# - 如何在并发字典中实现 tryAdd 多个条目?

c# - LINQ Group by Query 中的组号

jquery - Internet Explorer 中 jquery 网络摄像头的网络摄像头问题

url - 向URL二维码添加数据?

android - QR 扫描自定义布局

c# - 如何获取所有子文件夹及其文件 - UWP

c# - 从 DataTemplate 设置的自定义 DependencyProperty