4. 驱动与SDK安装
驱动和SDK,说白了就是相机和电脑之间的“翻译官”。驱动让系统认出设备,SDK让你能写代码控制它。这一步搞不定,后面全是白搭。我见过不少项目,硬件接线没问题,最后卡在驱动安装上,一卡就是半天。
咱们直接进入正题,看看三大主流厂商——Basler、海康机器人(Hikrobot)、大恒(Daheng)的驱动怎么装,SDK怎么配,以及那些让人头疼的坑怎么绕过去。
4.1 Basler 相机驱动与SDK安装
Basler 的驱动叫 Pylon。我个人习惯,不管用哪个版本,都去官网下最新的 Pylon 64-bit 安装包。别图省事用光盘里的老版本,容易出兼容性问题。
安装步骤:
- 关闭杀毒软件——这一步很重要。Windows Defender 有时候会拦截驱动签名,导致安装到一半卡住。
- 双击运行
pylon-x.x.x.x-win64.exe,一路 Next。 - 安装类型选 Complete,别选 Typical。Complete 会把 GigE Vision、USB3 Vision 的驱动都带上。
- 安装完成后,插上相机。打开 Pylon Viewer,如果能搜到相机,说明驱动装好了。
SDK环境配置:
Pylon 安装完,SDK 其实已经在了。你需要在 Visual Studio 里配置包含目录和库目录。
// 包含目录(以 Pylon 6.3 为例)
C:\Program Files\Basler\pylon 6\Development\Include
// 库目录
C:\Program Files\Basler\pylon 6\Development\Lib\x64
// 附加依赖项
pylonbase.lib
pylonutility.lib
嗯,这里要注意:如果你用的是 C#,直接添加引用 Basler.Pylon.dll 就行,路径在 Development\Bin\ 下。
4.2 海康机器人(Hikrobot)驱动与SDK安装
海康的 SDK 叫 MVS(Machine Vision Software)。我建议直接去海康机器人官网下载 MVS_STD_xxx.exe。这个安装包集成了驱动和SDK,一步到位。
安装步骤:
- 运行 MVS 安装包,选择安装路径。注意:路径不要有中文,否则后面编译会报错。
- 安装过程中会自动安装 USB3 Vision 和 GigE Vision 驱动。
- 装完后打开 MVS Viewer,插上相机,应该能看到设备列表。
SDK环境配置:
MVS 安装后,SDK 在安装目录下的 Development 文件夹里。配置 VS 项目时,注意区分 Win32 和 x64,别搞混了。
// 包含目录
C:\Program Files (x86)\MVS\Development\Includes
// 库目录(x64 版本)
C:\Program Files (x86)\MVS\Development\Libraries\win64
// 附加依赖项
MvCameraControl.lib
海康的 SDK 文档写得挺详细,每个函数都有示例代码。我建议你先把 GrabImage 这个例程跑通,后面改起来就快了。
4.3 大恒(Daheng)相机驱动与SDK安装
大恒的 SDK 叫 Galaxy。安装包在官网下载,名字一般是 GalaxySDK_xxx.exe。大恒的驱动安装有个特点——它依赖 DirectShow 框架,所以装完 SDK 后,最好再装一个 Galaxy Viewer 来验证。
安装步骤:
- 运行 GalaxySDK 安装包,选择完整安装。
- 安装过程中会弹出驱动安装提示,点“始终信任”就行。
- 装完后打开 Galaxy Viewer,连接相机。如果相机指示灯亮了,说明驱动正常。
SDK环境配置:
// 包含目录
C:\Program Files\Daheng Imaging\GalaxySDK\include
// 库目录
C:\Program Files\Daheng Imaging\GalaxySDK\lib\win64
// 附加依赖项
GxIAPI.lib
大恒的 SDK 里有个 GxIAPI.h 头文件,里面定义了所有接口。我习惯把 GxIAPI.lib 和 GxIAPI.dll 直接放到项目目录下,省得配路径。
4.4 常见安装问题排查
这部分是重点。我这些年踩过的坑,基本都在这了。
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 相机在 Viewer 中搜不到 | 防火墙拦截 / 驱动未正确安装 | 关闭防火墙;重新安装驱动;检查网卡设置(GigE 相机需开启巨型帧) |
| 相机连接后图像卡顿 | 带宽不足 / 线缆问题 | USB3 换线;GigE 检查网卡速率;减少同时连接的相机数量 |
| SDK 编译报错 LNK2019 | 库文件未正确链接 | 检查附加依赖项;确认平台是 x64 还是 Win32 |
| 运行时提示找不到 DLL | 环境变量未配置 | 将 SDK 的 Bin 目录添加到系统 PATH 中 |
| 相机指示灯亮但无法采集 | 触发模式设置错误 | 在 Viewer 中将触发模式改为“连续采集” |
环境变量配置(通用):
不管你用哪家的 SDK,建议都把 Bin 目录加到系统 PATH 里。这样运行时不会报“找不到 DLL”的错误。
// 以 Basler 为例,添加到 PATH
C:\Program Files\Basler\pylon 6\Development\Bin\x64
// 以海康为例
C:\Program Files (x86)\MVS\Development\Bin\win64
// 以大恒为例
C:\Program Files\Daheng Imaging\GalaxySDK\bin\win64
配置完 PATH 后,记得重启 Visual Studio,否则环境变量不生效。
InitCamera() 函数,里面包含驱动加载、设备枚举、连接相机三步。每次换相机型号,只需要改枚举的 IP 或序列号,不用动其他代码。这样调试起来快很多。
好了,驱动和SDK这块就这些。记住一句话:先装驱动,再装SDK,最后配环境变量。顺序别搞反,不然容易出幺蛾子。