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 目录结构如下图所示:

📦 camport_visionpro SDK
├── 📁 核心库
│   ├── PercipioCamera.dll               # 主相机功能库,封装相机控制、图像采集等核心接口
│   ├── PercipioCameraExtern.dll         # 相机功能扩展库,提供额外的高级功能或硬件扩展支持
│   ├── tycam.dll                        # 相机底层驱动或硬件通信库
│   └── tyimgproc.dll                    # 图像处理库,提供图像预处理、增强等算法
│
├── 📁 工具模块
│   ├── PerciPioCameraToolBlock.vpp      # 可视化编程工具块(可能用于图形化开发环境,如VisionPro)
│   └── PercipioCameraToolBlock.vtt      # 工具块的配置或模板文件
│
├── 📁 示例程序
│   └── Program.cs                       # 项目入口程序
│
└── 📁 文档
    └── 更新记录.txt                     # 版本更新日志

配置环境

  1. 右击 VisionPro 快捷方式图标,在弹出的快捷菜单中选择“打开文件所在的位置”,进入 Visionpro 安装目录。

  2. 将 PercipioCamera.dll、PercipioCameraExtern.dll、tycam.dll、tyimgproc.dll 拷贝至 VisionPro 安装目录 bin 文件夹。

  3. 将 PercipioCameraToolBlock.vtt 拷贝至 VisionPro 安装目录 bin/Templates/Tools 文件夹。

运行示例

该部分主要介绍如何在 VisionPro 中运行图漾相机,操作步骤如下:

  1. 双击运行 VisionPro 软件。

  2. 双击“Image Source”,进入 VisionPro(R) QuickBuild 作业编辑器 - CogJob1 页面。

    cogjob1
  3. 点击“显示 VisionPro 工具”图标,调出 VisionPro 工具 页面。

    PercipioCameraToolBlock
  4. 双击“PercipioCameraToolBlock”,添加至 ToolGroup 中。

    添加 PercipioCameraToolBlock
  5. 双击“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 毫米/像素)。

  6. 点击“运行”图标。在输出端口可查看相机采集的图像。

    运行结果

    之后根据实际需求添加其他 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}");