Halcon棋盘格畸变矫正

前言

通常我们使用的相机都是带有一定的畸变的,只是畸变的大小不同。对于我们常见的测量项目来说,对测量精度的要求很高,通常从相机镜头上进行优化,但是即使镜头优化或者成本原因,造成图像仍有一定的畸变时,我们就可是使用棋盘格标定板,进行畸变矫正

1.程序

* Image Acquisition 01: Code generated by Image Acquisition 01
read_image (Image, 'C:/Users/1/Desktop/work/3.8/10.bmp')
*****************************标定矫正过程**************************************
WidthOfGrid := 0.17
NumSquares := 110
create_rectification_grid (WidthOfGrid, NumSquares, 'rectification_grid.ps')
MinContrast := 25
Radius := 10
find_rectification_grid (Image, GridRegion, MinContrast, Radius)
reduce_domain (Image, GridRegion, ImageReduced)

SigmaSaddlePoints := 2
Threshold := 3
saddle_points_sub_pix (ImageReduced, ‘facet’, SigmaSaddlePoints, Threshold, Row, Col)
gen_cross_contour_xld (SaddlePoints, Row, Col, 20, 1)
dev_display (Image)
dev_display (SaddlePoints)

SigmaConnectGridPoints := 0.9
MaxDist :=5
GridSpacing := 45
dev_set_color (‘red’)
connect_grid_points (ImageReduced, ConnectingLines, Row, Col, SigmaConnectGridPoints, MaxDist)
gen_grid_rectification_map (ImageReduced, ConnectingLines, Map, Meshes, GridSpacing,0, Row, Col, ‘bilinear’)
map_image (ImageReduced, Map, ImageMapped)

存储标定参数*
write_image (Map, ‘tiff’, 0, ‘C:/Users/1/Desktop/work/3.8/calib.tiff’)
read_image (Map, ‘C:/Users/1/Desktop/work/3.8/calib.tiff’)

读取图像测试
read_image (Image, ‘C:/Users/1/Desktop/work/3.8/2.bmp’)
map_image (Image, Map, ImageMapped)

    2.采集标定图像

    在这里插入图片描述
    此次使用激光雕刻的棋盘格,单个格子长宽2mm,图像采集像素值为单格43像素。
    标定前,可以根据所需要的视野大小进行标定,当然最佳的方式是标定板应该大于视野范围,以确定边缘畸变的量,同时标定板应该摆放正,如果没有摆放正的情况会出现矫正图像有倾斜的现象。

    3.裁剪标定板区域

    *实际棋盘格宽度
    WidthOfGrid := 0.3
    *棋盘格单向数量
    NumSquares := 110
    *创建标定板
    create_rectification_grid (WidthOfGrid, NumSquares, 'rectification_grid.ps')
    *最小二值化的值
    MinContrast := 25
    Radius := 10
    find_rectification_grid (Image, GridRegion, MinContrast, Radius)
    reduce_domain (Image, GridRegion, ImageReduced)
    
     
     

      4.提取网格

      *提取每个网格的交点
      *预设参数一般不需要修改。但是需要保证每个格子与格子间的角都要找到,哪里没找到,哪里就会矫正缺损
      SigmaSaddlePoints := 2
      Threshold := 3
      saddle_points_sub_pix (ImageReduced, 'facet', SigmaSaddlePoints, Threshold, Row, Col)
      gen_cross_contour_xld (SaddlePoints, Row, Col, 20, 1)
      dev_display (Image)
      dev_display (SaddlePoints)
      *生产网格线
      SigmaConnectGridPoints := 0.9
      MaxDist :=5
      *设置矫正后的单个像素值
      GridSpacing := 43
      dev_set_color ('red')
      connect_grid_points (ImageReduced, ConnectingLines, Row, Col, SigmaConnectGridPoints, MaxDist)
      gen_grid_rectification_map (ImageReduced, ConnectingLines, Map, Meshes, GridSpacing,0, Row, Col, 'bilinear')
      *矫正图像
      map_image (ImageReduced, Map, ImageMapped)
      
       
       

        注意:当棋盘格上有细小的污点时,会严重影响实际的畸变矫正的效果,所以采集到图像时,需要使用PS或者画图软件将污点去除,在进行运算

        5.保存矫正数据和验证

        5.1保存数据

        ******************************************存储标定参数*****************
        write_image (Map, 'tiff', 0, 'C:/Users/1/Desktop/work/3.8畸变矫正/calib.tiff')
        read_image (Map, 'C:/Users/赵伟/Desktop/work/3.8畸变矫正/calib.tiff')
        

        读取图像测试
        read_image (Image, ‘C:/Users/1/Desktop/work/3.8畸变矫正/2.bmp’)
        map_image (Image, Map, ImageMapped)

          5.2验证数据

          在这里插入图片描述
          使用标定板随机重新防止。
          然后使用测量助手对中心和边缘的棋盘格的像素进行提取
          在这里插入图片描述
          在这里插入图片描述
          选取矫正后的图像的中心区域的格子,与边缘区域的格子对比实际距离大小,误差小于0.3像素则代表矫正成功

          6.注意事项

          1:矫正参数仅适用于,当前高度,焦距,相机,采集到的图像。
          2:输入的标定棋盘格图像一定不能存在污点,当有污点时,适用PS或者画图工具手动去除
          3:标定板需要摆放正确方向,当矫正后,图像将自动矫正为水平方向,如果标定板摆放不水平时,会出现矫正图像倾斜的情况。

          转载自:https://blog.csdn.net/m0_51559565/article/details/136586345
          • 1
            点赞
          • 1
            收藏
            觉得还不错? 一键收藏
          • 0
            评论
          ### 回答1: Halcon棋盘图像是指在Halcon软件中使用的一种特殊图像类型。棋盘图像是由黑白间隔规则排列的正方形子组成的图像。这种图像常用于机器视觉领域的相机标定和图像校正等应用中。 Halcon软件提供了一系列用于处理棋盘图像的工具和算法。首先,用户需要将棋盘图像导入到Halcon软件中。然后,用户可以使用Halcon提供的函数来检测和识别棋盘图像中的角点或子边界。通过检测角点,可以进行相机标定和图像校正等操作。 在相机标定中,Halcon可以根据棋盘图像中的角点位置计算出相机的内外参数,从而实现对相机镜头的校准。在图像校正中,Halcon可以利用棋盘图像来校正图像中的畸变,使得图像中的直线变得更加平直和准确。 除了相机标定和图像校正,棋盘图像在Halcon中还可以用于计算物体的尺寸或角度等。通过检测棋盘图像中的子边界,可以实现对物体尺寸和角度的测量。 总之,Halcon棋盘图像是一种用于机器视觉领域的特殊图像类型,通过Halcon软件提供的工具和算法,可以实现对图像的标定、校正和测量等操作。这些操作在工业自动化、机器人视觉、医疗影像等领域有着广泛的应用。 ### 回答2: Halcon棋盘图像是指在图像处理中使用的一种特殊图案,由一组平行线和垂直线交叉形成网状图案,类似于国际象棋或跳棋的棋盘样式。 Halcon棋盘图像通常用于相机标定和图像畸变校正。通过将棋盘摆放在待测物体的平面上,拍摄该平面的图像,再使用Halcon图像处理软件对图像进行处理,可以准确地计算出相机的内参和外参,以及图像畸变的参数。 在进行相机标定时,Halcon棋盘图像能够提供一系列已知世界坐标和其对应的图像坐标,通过这些对应关系可以推导出相机的内参,例如焦距、主点偏移等。同时,通过棋盘在图像中的畸变情况,可以推导出相机的畸变参数,例如径向畸变和切向畸变。 在图像畸变校正中,Halcon棋盘图像可以作为可靠的参考对象。通过检测和识别棋盘的交叉点,可以对图像进行几何校正,去除图像中的畸变。 总之,Halcon棋盘图像在相机标定和图像畸变校正方面具有重要的应用价值。通过对棋盘图案的处理和分析,可以得到准确的相机参数,并实现图像的几何校正,提高图像的质量和准确性。同时,Halcon软件提供了丰富的工具和函数,便于对棋盘图像进行处理和分析。 ### 回答3: Halcon棋盘图像是一种用于计算机视觉和机器视觉应用的图像处理技术。棋盘图像由一系列交叉排列的黑白方块组成,每个方块的大小和颜色都是已知的。 Halcon棋盘图像在机器视觉领域有广泛的应用。首先,它可以用于相机标定。通过将相机对准棋盘图像,可以通过分析相机图像与真实世界的对应关系来获得相机的内外参数,从而实现精确的图像测量和三维重建。 其次,Halcon棋盘图像也可以用于机器人导航。通过在机器人所处环境中放置棋盘图像,机器人可以通过识别和跟踪棋盘来确定自己在空间中的位置和方向,实现自主导航和路径规划。 此外,Halcon棋盘图像还可以用于图像校正和纠正。通过识别棋盘图像中的方块边缘或角点,可以对图像进行失真校正,达到图像校正的效果。这在机器视觉和模式识别中非常有用,可以提高图像处理和分析的准确性和可靠性。 总结来说,Halcon棋盘图像是一种重要的图像处理技术,它在相机标定、机器人导航、图像校正等方面有着广泛的应用。通过识别和分析棋盘图像中的特征,可以实现精确的计算机视觉和机器视觉应用。
          评论
          添加红包

          请填写红包祝福语或标题

          红包个数最小为10个

          红包金额最低5元

          当前余额3.43前往充值 >
          需支付:10.00
          成就一亿技术人!
          领取后你会自动成为博主和红包主的粉丝 规则
          hope_wisdom
          发出的红包
          实付
          使用余额支付
          点击重新获取
          扫码支付
          钱包余额 0

          抵扣说明:

          1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
          2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

          余额充值