halcon 细节(可用于面试)

一、灰度增强

scale_image

适用于:

曝光不足

整体偏暗。

scale_image_max

自动拉伸

优点

自动增强。

缺点

如果存在异常亮点,

容易导致整体增强效果不好。

equ_histo_image

直方图均衡化

目的:

让灰度分布均匀。

优点

对比度明显增强。

缺点

噪声一起增强。

二、平滑去噪

mean_image

优点:

最快。


缺点:

边缘模糊。


工业:

几乎不用。

gauss_image

优点

工业使用最多。

边缘保持

比均值好。


缺点

细节下降。


应用:

Steger

亚像素

OCR

定位

基本都有。

median_image

中值滤波

优点

去椒盐噪声最好。


缺点

速度慢。

三、锐化增强

emphasize

优点

边缘增强明显。


缺点

噪声也增强。


应用:

字符

PCB

激光条纹。

laplace

二阶导。

数学:

优点

边缘突出。


缺点

特别怕噪声。

sobel_amp

优点

速度快。


缺点

容易断裂。

四、区域算子

cpp 复制代码
Threshold(阈值分割)

├── ① 全局阈值
│      threshold
│
├── ② 自动阈值
│      binary_threshold
│      auto_threshold
│
├── ③ 动态阈值(局部阈值)
│      dyn_threshold
│      var_threshold
│
├── ④ 多阈值分割
│      threshold_sub_pix
│      hysteresis_threshold
│
├── ⑤ 区域阈值
│      local_threshold
│
├── ⑥ 灰度区间
│      in_range
│
└── ⑦ 彩色阈值
       threshold(RGB)
       trans_from_rgb + threshold

全局阈值

threshold

优点:

最快计算最少实时性最好。


缺点

不能处理:光照变化。

自动阈值

binary_threshold

自动寻找最佳阈值。

优点:不用人工调。

缺点:双峰图像效果最好

auto_threshold

自动计算:多个阈值

动态阈值(局部阈值)

dyn_threshold

思想:比较局部均值。

适合:

光照变化。光照不均下的自适应分割


优点

工业使用率极高

缺点:参数Offset不好调。

var_threshold

局部方差。

适合:

纹理。

多阈值分割

threshold_sub_pix

是亚像素不是:Region。而是:轮廓。

定位:

更准确。

hysteresis_threshold

双阈值。 Canny:

区域阈值

local_threshold

五、形态学

gray_opening

去亮噪声。


gray_closing

补孔。


gray_dilation

目标变粗。


gray_erosion

目标变细。

类别 HALCON常用算子 数学基础 优点 缺点 工业使用频率
灰度增强 scale_imagescale_image_maxequ_histo_image 灰度线性变换、直方图均衡 实现简单、速度快 光照不均时效果有限,均衡化可能放大噪声 ★★★★☆
去噪 gauss_imagemedian_imagemean_image 卷积、高斯分布、中值统计 去除随机噪声,提高稳定性 会损失部分细节 ★★★★★
锐化 emphasizelaplace 高通滤波、二阶导数 突出边缘和纹理 对噪声敏感 ★★★★☆
边缘增强 edges_sub_pixlines_gausssobel_amp 梯度、一阶/二阶导 亚像素精度高,适合测量 参数较多,需要根据场景调整 ★★★★★
局部增强 dyn_thresholdvar_threshold 局部统计、自适应阈值 光照不均时效果好 参数依赖场景 ★★★★★
形态学 gray_openinggray_closinggray_dilationgray_erosion 数学形态学 去噪、修补目标形状 结构元素选择影响结果 ★★★★☆
频域增强 fft_genericconvol_fft 傅里叶变换 去除周期噪声、纹理增强 计算量较大,实现复杂 ★★☆☆☆
彩色增强 trans_from_rgbdecompose3 颜色空间变换 可针对亮度或颜色单独增强 多用于彩色检测,单色工业相机较少用 ★★★☆☆

六、工业项目常见组合

1. OCR

复制代码
Image
   │
gauss_image
   │
scale_image_max
   │
dyn_threshold
   │
opening_circle
   │
OCR

2. 激光条纹

复制代码
Image
   │
gauss_image
   │
emphasize
   │
lines_gauss
   │
Steger

3. PCB

复制代码
Image
   │
median_image
   │
emphasize
   │
edges_sub_pix

4. 双目视觉

复制代码
Image
   │
gauss_image
   │
equ_histo_image
   │
binocular_disparity

七、halcon 和opencv 如何进行手眼标定的

halcon

cpp 复制代码
① 相机标定(Camera Calibration)
            │
            ▼
② 采集多组机器人姿态
            │
            ▼
③ 每个姿态拍摄标定板
            │
            ▼
④ 求每张图标定板Pose
            │
            ▼
⑤ 构造 A、B
            │
            ▼
⑥ 求解 AX=XB
            │
            ▼
⑦ 验证误差
            │
            ▼
⑧ 保存标定结果
步骤 HALCON OpenCV 数学本质
相机标定 camera_calibration / calibrate_cameras calibrateCamera() 求内参 (K) 与畸变
标定板检测 find_calib_objectfind_marks_and_pose findChessboardCorners() 提取角点
位姿估计 find_marks_and_pose(内部包含位姿估计) solvePnP() 求 (R,t)
机器人位姿 Robot Controller Robot SDK Base→Tool
手眼标定 hand_eye_calibration calibrateHandEye() 求解 (AX=XB)
验证 重投影/位姿误差 自己计算或项目实现 精度验证

创作中心-CSDN

OpenCV

cpp 复制代码
calibrateCamera
        │
        ▼
Camera Matrix
        │
        ▼
solvePnP
        │
        ▼
Target→Camera
        │
        ▼
Robot Pose
        │
        ▼
calibrateHandEye
        │
        ▼
Camera→Gripper

总结

1、首先完成相机标定,得到相机内参和畸变参数。

2、机器人移动到多个不同姿态,每个姿态记录机器人末端(Base→Tool)位姿,同时拍摄标定板。

3、通过 HALCON 的 find_marks_and_pose(或 OpenCV 的 solvePnP)计算每张图中标定板相对于相机的位姿(Camera→Board)。

4、利用相邻姿态构造机器人运动 A 和相机运动 B,建立经典手眼标定模型 AX=XB。

5、HALCON 使用 hand_eye_calibration,OpenCV 使用 calibrateHandEye 求解固定变换 X,即相机与机器人末端之间的外参。

6、最后通过验证实验检查重投影误差、位姿误差和实际抓取误差,确认标定结果满足精度要求。

八、相机标定和图像矫正

opencv 是如何做的,用了哪些算子,步骤是什么样的

相机标定

Halcon 像机标定原理推导_halcon相机标定-CSDN博客

图像矫正

如何去除镜头畸变_全景影像去畸变 csdn-CSDN博客

模版匹配NCC

什么时候用;

当目标灰度纹理稳定、形状基本不变、只有位置发生变化时,优先考虑 NCC。

NCC 的数学原理

什么情况下使用 NCC?

二维码、

字符、

PCB、

Logo。

什么时候不要用 NCC?

旋转。

尺度变化。

形状变化。

遮挡。

复杂背景。
NCC(Normalized Cross Correlation)是一种基于灰度相关性 的模板匹配算法,它通过计算模板与搜索区域的归一化互相关系数来评价相似度。由于进行了均值和方差归一化,因此对整体亮度变化 有一定鲁棒性。它适用于目标纹理丰富、灰度分布稳定、尺寸和形状基本不变、旋转角度较小或固定 的场景,例如 OCR 字符定位、PCB 元件检测、Logo 定位等。对于大角度旋转、尺度变化、遮挡、形变或复杂背景,NCC 的鲁棒性较差,此时通常更推荐使用 HALCON 的 Shape-Based Matching,因为它基于边缘轮廓,对旋转、部分遮挡和光照变化更加稳定。

模版匹配-Shape-Based

√ 有旋转

√ 有遮挡

√ 光照变化

√ 边缘明显

Halcon 模板匹配-CSDN博客

相关推荐
火山引擎开发者社区12 小时前
VeOps CLI:你的火山引擎可观测排障助手
人工智能
To_OC14 小时前
调用远程MCP,手搓一个能查酒店、自动打开浏览器的 Agent
人工智能·agent·mcp
启雀AI14 小时前
生物医疗行业如何建设合规、安全、可复用的知识库?
人工智能·安全·软件构建·知识图谱·知识库
x-cmd14 小时前
Mac 涨价后,本地 AI 还能千元入门吗?
linux·人工智能·macos·ai·agent·amd·本地ai入门
To_OC15 小时前
跑通第一个 MCP Server 后,我终于搞懂它到底解决了什么问题
人工智能·agent·mcp
楷哥爱开发15 小时前
如何使用 Claude Fable 5 进行网页抓取?2026最新实战教程
大数据·网络·人工智能
YMWM_15 小时前
lerobot中use_relative_actions=True需要重新计算meta/stats.json等信息
人工智能·深度学习·lerobot
触底反弹15 小时前
🔥 DeepSeek 560 万美金干翻 OpenAI?一文讲透「蒸馏」的来龙去脉
人工智能
私人珍藏库15 小时前
[Android] 会计快题库 -财会职称考试刷题学习
android·人工智能·学习·app·软件·多功能
Sirius Wu15 小时前
OpenClaw Skill:Matplotlib 可视化技能 + 沙箱双层隔离完整详解
服务器·网络·人工智能·安全·ai·架构·aigc