halcon学习笔记(13)——二维码识别及简单定位

来源:互联网 发布:windows原装壁纸 编辑:程序博客网 时间:2024/05/09 22:02

前面说了利用halcon进行二维码的识别,这次进行二维码识别及方向定位,虽然二维码本身也有定位和方向性,但是我没有在halcon算子里找到这个函数或调出这个参数的方法;不过可以通过在二维码附近添加mark图形来进行角度和方向识别,这样在AGV小车应用中就可作为地标识别程序了,当然AGV小车应用的话很少是window系统,一般是嵌入式linux系统,虽然halcon支持linux系统,且QT也支持跨平台,不过不太熟linux系统如何操作,有待学习;所以要想真正应用在像亚马逊kiva机器人进行地标识别,还需要将做硬件处理,即将平台换为linux并且用低功率板子做开发;当然安卓也能开发;另外一切传感器厂商已经直接集成了二维码定位传感器,比如倍加福等,这种传感器体积小,精度高,稳定性好,but价格高;不过halcon毕竟是厂商的软件用起来还是要注意版权的问题,这点不如opencv了;好了废话说了这么多代码直接上了;主体还是前面讲的的二维码程序,这里指列出方向定位程序,处理图片如下:

代码如下:

        select_obj (SymbolXLDs, SymbolXLD, i+1)        get_contour_xld (SymbolXLD, Row, Col)        get_string_extents (WindowHandle, DecodedDataStrings[i], Ascent, Descent, TxtWidth, TxtHeight)        disp_message (WindowHandle, DecodedDataStrings[i], 'image',20, 20, 'red', 'true')                      area_center_xld (SymbolXLD, Area, Row1, Column, PointOrder)        *获取xld参数        elliptic_axis_xld (SymbolXLD, Ra, Rb, Phi)        *外接椭圆并判断方向        bin_threshold (ImageRectifiedFixed, Region)        *自动灰度直方块图        connection (Region, ConnectedRegions1)        *求联通区域        select_shape (ConnectedRegions1, SelectedRegions, 'area', 'and', 15441.5, 21905)        *选择特征直方块图        orientation_region (SelectedRegions, Phi_1)        *求特征的方向        area_center (SelectedRegions, Area_1, Row_1, Column_1)         *求特征的中心         dev_set_line_width (3)          dev_set_draw ('margin')         dev_set_color ('blue')        Length := 80         disp_arrow (WindowHandle, Row1[0], Column[0], Row1[0] - Length * sin(Phi[0]), Column[0] + Length * cos(Phi[0]), 4)         disp_message (WindowHandle, deg(Phi[0])$'3.1f' + ' deg', 'image', Row1[0], Column[0] - 100, 'black', 'false')                 disp_arrow (WindowHandle, Row_1[0], Column_1[0], Row_1[0] - Length * sin(Phi_1[0]), Column_1[0] + Length * cos(Phi_1[0]), 4)         disp_message (WindowHandle, deg(Phi_1[0])$'3.1f' + '度', 'image', Row_1[0], Column_1[0] - 100, 'blue', 'false')       
1 0
原创粉丝点击