You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Halcon如何从低对比度带噪图像中提取周转箱区域

周转箱轮廓/区域检测落地方案

相关参考素材

  • 待处理采集图:
    待处理周转箱图像
  • 预期提取效果:
    周转箱区域提取参考效果
  • 原始无压缩原图:
    原始采集图像

已知约束:周转箱高度不固定,采集图像高度会随箱体高度同步变化,高箱体场景下箱体左右两侧亮区可能无法完整显示;已尝试直接阈值分割、结合mult_image、add_image算子做图像运算预处理后分割,均未得到干净准确的选中区域。


具体实现步骤

方案完全规避对侧边亮区、固定箱体高度的依赖,适配所有可变场景:

  • 边缘增强预处理
    跳过全局阈值处理逻辑,先对原始图调用sobel_amp算子,选取Size=3的核同时提取水平、垂直方向边缘;之后调用mean_image做1*3尺寸的横向均值滤波,滤除表面纹理、噪点产生的细碎边缘,保留箱体的连续轮廓边缘。
  • 垂直投影定位左右边界
    对边缘增强后的图像做垂直方向投影,逐列统计列方向的灰度累加值,灰度值出现连续陡增的两个区间,就是周转箱的左右竖直边缘。这一步不需要侧边亮区作为参考,只要箱体边缘落在画面内即可准确定位,定位完成后直接锁定X轴方向的处理ROI,缩小后续处理范围。
  • 动态定位上下边界
    在已锁定的X轴ROI范围内做水平方向投影,逐行统计行方向灰度累加值:
    • 上边界:从画面顶部向下逐行扫描,第一个灰度累加值超过预设阈值的连续行,即为箱体上沿
    • 下边界:如果放置周转箱的台面位置固定,可提前标定台面Y轴基线直接作为箱体下沿;如果台面位置存在浮动,从画面底部向上逐行扫描,第一个连续长度符合箱体宽度阈值的水平边缘,即为箱体下沿
  • 轮廓修正生成最终区域
    拿到上下左右四个边界坐标后先生成初始矩形区域,调用reduce_domain将图像处理范围收缩到该矩形内,再调用threshold_sub_pix做局部阈值提取亚像素轮廓,对轮廓上因为反光、污渍产生的断点、凸起用union_collinear_contours_xld做共线轮廓合并,最终拟合生成最小外接矩形,即为干净准确的周转箱区域。

调优注意事项

  • 不要使用全局固定阈值:周转箱表面反光、本身颜色存在波动,加上环境光变化,全局阈值极易把亮斑、阴影错判为箱体或背景
  • 不要将侧边亮区作为定位锚点:此前图像运算预处理方案效果不佳,大概率是锚定了侧边亮区特征,投影定位边缘的逻辑可完全绕开这个依赖
  • 如果现场安装存在相机倾斜,可在提取亚像素轮廓后调用fit_rectangle2_contour_xld拟合带旋转角度的矩形,不需要强制轴对齐,提取精度更高

内容的提问来源于stack exchange,提问作者sharkyenergy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:48:28