如何用DirectShow替代付费的摄像头SDK

本文介绍了如何在Dynamsoft Barcode SDK的Demo中移除付费的Dynamic .NET TWAIN,转而使用DirectShow来控制Webcam进行条形码扫描。通过去掉不必要的DLL,修改配置,调整UI,并利用DirectShowNet库,实现了摄像头的视频流读取,以实现低成本的桌面条形码扫描应用。

Dynamsoft Barcode SDK安装包里自带了一个功能强大的扫码Demo,这个Demo支持的条形码扫描功能包括文件读取,扫描仪图像读取,以及摄像头视频流读取。
在这里插入图片描述
然而扫描仪和摄像头的调用功能并不是免费的,需要用到Dynamic .NET TWAIN这个商用SDK。这篇文章分享下如何去掉扫描仪功能,并把Webcam调用接口替换成DirectShow。

Windows桌面条形码扫描应用

安装Dynamsoft Barcode Reader之后,找到工程<Dynamsoft Barcode Reader>\Samples\Desktop\C#\BarcodeReaderDemo,并导入Visual Studio

这个工程依赖的DLL包括Dynamsoft.BarcodeReader.dll, Dynamsoft.ImageCore.dll,Dynamsoft.Forms.Viewer.dll, Dynamsoft.Camera.dll,Dynamsoft.PDF.dll,Dynamsoft.Twain.dll。

扫码工程修改

去掉扫描仪和摄像头依赖的DLL:Dynamsoft.Camera.dll, Dynamsoft.PDF.dll ,Dynamsoft.Twain.dll。

App.config文件中去掉key =“DNTLicense” value =“LICENSE-KEY” :

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key ="DBRLicense" value ="LICENSE-KEY"/>
    <add key ="DNTLicense" value ="LICENSE-KEY"/>
  </appSettings>
</configuration>

BarcodeReaderDemo.cs中去掉scanner选项:

// remove
mRoundedRectanglePanelAcquireLoad.Controls.Add(mThAcquireImage);

调整一下UI:

// before
mThLoadImage.Size = new Size(103, 40);
mThWebCamImage.Location = new Point(207, 1);
mThWebCamImage.Size = new Size(103, 40);
// after
mThLoadImage.Size = new Size(156, 40);
mThWebCamImage.Location = new Point(157, 1);
mThWebCamImage.Size = new Size(156, 40);

删除Dynamic .NET TWAIN相关代码:

// remove
mTwainManager = new TwainManager(dntLicenseKeys);
mCameraManager = new CameraManager(dntLicenseKeys);
mPDFRasterizer = new PDFRasterizer(dntLicenseKeys);

Build一下工程会报出相关的错误,把对应的代码都删除。

调整后的界面:
在这里插入图片描述

使用DirectShowNet控制Webcam

创建一个DSManager.cs用于控制DirectShow的逻辑。

定义两个结构体存放摄像头相关的参数:

public struct Resolution
{
   
   
    public Resolution(int width, int height)
    {
   
   
        Width = width;
        Height = height;
    }
 
    public int Width {
   
    get; }
    public int Height {
   
    get; }
 
    public 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值