图像采集助手-Image Aequisition
1.配置相机IP 和巨型帧等
2.通过海康MVS软件 找到 对应halcon 版本
下载MVS https://www.hikrobotics.com/cn/machinevision/service/download/?module=0

- 找到对应halcon版本的 海康相机三方配置文件

4.找到Halocn文件目录 粘贴上图文件
注意:路径为x64

通过halcon 助手 -Image Aequisition -自动检测 -找到MVision接口

连接相机-采集图像-实时显示
- 接口库:相机通信协议的动态链接库
- 设备 :下拉框选择相机设备(如
GEV_DA0265991), - 端口(Port)默认为
0 - 相机类型 :
auto表示自动识别相机类型 - 分辨率 :通过
X/Y下拉框选择图像分辨率全部为相机最大分辨率。 - 场(Field) :
progressive表示逐行扫描 (与隔行扫描interlaced对应,逐行更适配实时显示)。 - 颜色空间(Color Space) :
default为默认颜色空间,也可自定义(如 RGB、YUV 等)。 - 位深度(Bit Depth) :
8表示单通道像素深度(如灰度图),若需彩色图可调整为更高位深(如 24 位 RGB)。

显示图像:下拉菜单选择显示模式
图像显示窗口:下拉菜单选择图像显示的目标窗口
忽略实时采集的第一幅图像:勾选后采集时会跳过第一帧 避免首帧异常影响统计。
采集控制流:选择"在循环中采集图像",表明代码生成的逻辑是循环执行图像采集操作。
采集模式:设置为"异步采集",即采集过程不阻塞主线程,可并行处理其他任务。
- 变量名 :
- 连接句柄:
AcqHandle(用于标识图像采集设备的连接实例)。 - 循环计数:
Index(循环变量,记录当前采集次数)。 - 图像对象:
Image(存储每次采集到的图像数据)。 - 图像文件:
ImageFiles(可能用于存储图像文件路径或批量处理的文件列表)。 - 勾选"自动断开连接",表示循环结束后自动释放
AcqHandle对应的设备连接。
- 连接句柄:
插入代码后:

open_framegrabber是Halcon中用于连接图像采集设备(如工业相机、视频文件等)的核心算子,其功能包括初始化设备、配置参数并返回设备句柄
参数'GigEVision2'指定使用第二代GigE Vision接口,
参数0,0,0,0,0,0表示采用默认分辨率与偏移量,
-1表示无超时限制,
'default'保留色彩空间和相机名称的默认配置,
AcqHandle相机设备句柄 可用于后续代码相机对象
**grab_image_start**是HALCON图像处理库中用于启动异步图像采集的算子,其功能是初始化相机或图像采集设备的连续采集流程。
参数:
AcqHandle:通过open_framegrabber获取的图像采集设备句柄,用于指定相机对象MaxDelay:最大延迟时间(单位毫秒),通常设为-1表示无限制等待
grab_image_async是HALCON中用于异步图像采集的核心算子,其参数MaxDelay设置为-1时表示禁用延迟控制机制
与同步采集grab_image不同,异步模式下相机在完成当前图像采集后立即开始下一帧采集
标定助手
标定作用:
1.可以对图像进行畸变的矫正
2.可以将图像的坐标(pixel)转成世界物理坐标(mm)
Halcon标定板大小:标定板的大小要大于全视野的1/3推荐使用2/3视野大小的标定板,
1.写标定脚本 用于初始化标定板信息



二 使用Halcon的标定助手,进行标定文件生成


海康机器人-机器视觉-产品详情 查看相机像元
海康机器人-机器视觉产品页 查看镜头焦距
2.拍照标定






应用标定结果 消除畸变和图像的坐标(pixel)转成世界物理坐标(mm)
* 相机内参
CameraParameters := ['area_scan_division',0.0530041,-30.6905,8.30027e-06,8.3e-06,1493.54,1124.96,3072,2048]
* 相机外参
CameraPose := [0.00312876,-0.0130657,0.483445,1.6477,3.25114,355.164,0]
stop ()
* 获取畸变参数
'adaptive':畸变矫正模式(自适应模式,会自动适配最优的矫正方式);CameraParameters:原始的相机内参(包含畸变系数,需提前通过相机标定得到);0:目标畸变系数(设为 0 表示完全消除径向畸变);CamParamChange:输出的矫正后相机参数(无畸变)change_radial_distortion_cam_par ('adaptive', CameraParameters, 0, CamParamChange)
* 生成畸变矫正Map
Map:输出的矫正映射表(包含 X/Y 方向的像素偏移);'bilinear':插值方式(双线性插值,兼顾矫正精度和速度,是最常用的选择)gen_radial_distortion_map (Map, CameraParameters, CamParamChange, 'bilinear')
* 读取图像
read_image (Image20250511114004720, 'C:/Users/Jumy/MVS/Data/Image_20250511114004720.bmp')
* 进行畸变矫正
map_image (Image20250511114004720, Map, ImageMapped)
* 计算圆心点的距离
rgb1_to_gray (ImageMapped, GrayImage)
threshold (GrayImage, Region, 0, 190)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1500, 1800)
select_obj (SelectedRegions, ObjectSelected1, 1)
select_obj (SelectedRegions, ObjectSelected2, 2)
area_center (ObjectSelected1, Area, Row1, Column1)
area_center (ObjectSelected2, Area, Row2, Column2)
* 像素转物理坐标
* 相机内参
* 外参
* 像素坐标
* 显示单位
* 输出 物理坐标
image_points_to_world_plane (CamParamChange, CameraPose, Row1, Column1, 'mm', X1, Y1)
image_points_to_world_plane (CamParamChange, CameraPose, Row2, Column2, 'mm', X2, Y2)
distance_pp ( Y1, X1, Y2, X2, Distance)

