VisionPro 平台
下载并安装 VisionPro
请至康耐视官网(https://www.cognex.cn/zh-cn/products/machine-vision/vision-software/visionpro-software)下载 VisionPro。
备注
VisionPro 9.0 版本经测试可正常打开图漾相机,建议使用图漾测试过的版本。
下载 camport_visionpro SDK
选择以下任意方式,下载 camport_visionpro SDK:
使用浏览器下载:https://gitee.com/percipioxyz/camport_visionpro.git。
使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。
git clone https://gitee.com/percipioxyz/camport_visionpro.git
选择以下任意方式,下载 camport_visionpro SDK:
使用浏览器下载: https://github.com/percipioxyz/camport_visionpro.git。
使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。
git clone https://github.com/percipioxyz/camport_visionpro.git
camport_visionpro SDK 目录结构如下图所示:
📦 camport_visionpro SDK
├── 📁 核心库
│ ├── PercipioCamera.dll # 主相机功能库,封装相机控制、图像采集等核心接口
│ ├── PercipioCameraExtern.dll # 相机功能扩展库,提供额外的高级功能或硬件扩展支持
│ ├── tycam.dll # 相机底层驱动或硬件通信库
│ └── tyimgproc.dll # 图像处理库,提供图像预处理、增强等算法
│
├── 📁 工具模块
│ ├── PerciPioCameraToolBlock.vpp # 可视化编程工具块(可能用于图形化开发环境,如VisionPro)
│ └── PercipioCameraToolBlock.vtt # 工具块的配置或模板文件
│
├── 📁 示例程序
│ └── Program.cs # 项目入口程序
│
└── 📁 文档
└── 更新记录.txt # 版本更新日志
配置环境
右击 VisionPro 快捷方式图标,在弹出的快捷菜单中选择“打开文件所在的位置”,进入 Visionpro 安装目录。
将 PercipioCamera.dll、PercipioCameraExtern.dll、tycam.dll、tyimgproc.dll 拷贝至 VisionPro 安装目录
bin文件夹。将 PercipioCameraToolBlock.vtt 拷贝至 VisionPro 安装目录
bin/Templates/Tools文件夹。
运行示例
该部分主要介绍如何在 VisionPro 中运行图漾相机,操作步骤如下:
双击运行 VisionPro 软件。
双击“Image Source”,进入 VisionPro(R) QuickBuild 作业编辑器 - CogJob1 页面。
点击“显示 VisionPro 工具”图标,调出 VisionPro 工具 页面。
双击“PercipioCameraToolBlock”,添加至 ToolGroup 中。
双击“PercipioCameraToolBlock”,在设置详情页选择“输入/输出”选项卡,并设置输入参数。
输入参数 参数名
描述
CameraId设置相机序列号。
IREpipolarRectificationFlag设置相机 IR 图极线矫正开关。True: 开启,False: 关闭。
AlignMode设置相机的图像对齐模式。0:不对齐;1:rgb2depth;2:depth2rgb。
TimeOut_ms设置触发超时时间。单位为毫秒(ms)。默认值 5000 ms。
orthoRefZ_mm设置正交校正参考平面的高度值。单位为毫米(mm)。
输出参数 参数名
描述
OutputColorImage输出 RGB 彩色图像。
OutputIRImage输出 IR 黑白图像。
OutputDepthImage输出深度图像,单位为 mm。
xPitch输出图像中每个像素在 X 方向上代表的实际物理大小(如 4.93509 毫米/像素)。
yPitch输出图像中每个像素在 Y 方向上代表的实际物理大小(如 4.93509 毫米/像素)。
点击“运行”图标。在输出端口可查看相机采集的图像。
之后根据实际需求添加其他 Tool,并将 PercipioCameraToolBlock 输出端口连接到其他工具的输入端口即可。
二次开发
如对 PercipioCameraToolBlock 有二次开发需求,可点击“创建/编辑脚本”图标,并编辑脚本。
GetInt
获取整型属性,比如:获取彩色图像的曝光时间。
int m_exposure_time = 0; ret = cameraSingle.GetInt((int)EnDeviceComponent.TY_COMPONENT_RGB_CAM, (int)En_FEATURE_ID.TY_INT_EXPOSURE_TIME, ref m_exposure_time); Console.WriteLine($"GetInt ret: {ret}");SetInt
设置整型属性,比如:设置彩色图像的曝光时间。
cameraSingle.SetBool((int) EnDeviceComponent.TY_COMPONENT_RGB_CAM,(int) En_FEATURE_ID.TY_BOOL_AUTO_EXPOSURE, false); ret = cameraSingle.SetInt((int)EnDeviceComponent.TY_COMPONENT_RGB_CAM, (int)En_FEATURE_ID.TY_INT_EXPOSURE_TIME, 400); Console.WriteLine($"SetInt ret: {ret}");设置前后对比图:
设置前
设置后
GetBool
获取布尔型属性,比如:获取AEC开关状态。
bool aec = false; ret = cameraSingle.GetBool((int)EnDeviceComponent.TY_COMPONENT_RGB_CAM, (int)En_FEATURE_ID.TY_BOOL_AUTO_EXPOSURE, ref aec); Console.WriteLine($"GetBool ret: {ret}");SetBool
设置布尔型属性,比如:关闭AEC。
ret = cameraSingle.SetBool((int) EnDeviceComponent.TY_COMPONENT_RGB_CAM,(int) En_FEATURE_ID.TY_BOOL_AUTO_EXPOSURE, false); Console.WriteLine($"SetBool ret: {ret}");GetEnum
获取枚举型属性,比如:获取彩色相机的分辨率。
ret = cameraSingle.GetEnum((int)EnDeviceComponent.TY_COMPONENT_RGB_CAM, (int)En_FEATURE_ID.TY_ENUM_IMAGE_MODE, ref resolution); Console.WriteLine($"GetEnum ret: {ret}");SetEnum
设置枚举型属性,比如:设置彩色相机的分辨率。
uint resolution = cameraSingle.ImageMode(TY_PIXEL_FORMAT_LIST.TY_PIXEL_FORMAT_YUYV, TY_RESOLUTION_MODE_LIST.TY_RESOLUTION_MODE_1920x1440); ret = cameraSingle.SetEnum((int) EnDeviceComponent.TY_COMPONENT_RGB_CAM, (int) En_FEATURE_ID.TY_ENUM_IMAGE_MODE, resolution); Console.WriteLine($"SetEnum ret: {ret}");运行后,可看到分辨率的变化。
设置前后对比图:
设置前
设置后
GetFloat
获取浮点型属性,比如:获取 Scale_Unit。
ret = cameraSingle.GetFloat((int)EnDeviceComponent.TY_COMPONENT_DEPTH_CAM, (int)En_FEATURE_ID.TY_FLOAT_SCALE_UNIT, ref scale_unit); Console.WriteLine($"GetFloat ret: {ret}");SetFloat
设置浮点型属性,比如设置 Scale_Unit。
ret = cameraSingle.SetFloat((int) EnDeviceComponent.TY_COMPONENT_DEPTH_CAM, (int) En_FEATURE_ID.TY_FLOAT_SCALE_UNIT, 5.0f); Console.WriteLine($"SetFloat ret: {ret}");