我尝试了各种QR码库和网络摄像头捕获技术 . 在特定时间间隔内捕获照片然后将其发送到QR代码库似乎是一个好主意,但检测QR代码的成功率非常低 . 有人能推荐一种更好的方法来通过网络摄像头检测QR码吗?非常感谢 :)
码:
void FinalVideo_NewFrame(object sender,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
}
}
2 回答
尝试使用AForge.NET库从网络摄像头捕获视频,然后使用ZXing.Net库读取QR码 .
您可以按照这些Youtube教程进行操作,这些教程将展示如何使用AForge.Net从网络摄像头获取视频 . https://www.youtube.com/watch?v=osAOpsRYqVs&t=311s
至于QRs解码,我使用了以下每1秒执行一次的代码:
`