• halconselect_shape_xld根据形状特征选择轮廓


    在HDevelop中

    dev_close_window ()
    read_image (Image, 'D:/bb/tu/6.jpg')
    rgb1_to_gray (Image, GrayImage)
    
    edges_sub_pix (GrayImage, Edges, 'canny', 1, 5, 10)
    *亚像素边缘
    
    select_shape_xld (Edges, SelectedXLD, 'area', 'and', 5500, 5600)
    *根据形状特征选择轮廓
    *参数1:轮廓集
    *参数2:选中的轮廓
    *参数3:形状特征
    *      'area':      轮廓的面积---默认
    *      'area_points':   轮廓点的面积
    *      'row':      中心的行索引
    *      'column':    中心的列索引
    *      'width':     轮廓的宽度
    *      'height':    轮廓的高度
    *      'ratio':     轮廓的高度与宽度之比
    *      'row1':      左上角的行坐标
    *      'column1':   左上角的列坐标
    *      'row2':      右下角的行坐标
    *      'column2':   右下角的列坐标
    *      'circularity':   圆度
    *      'compactness':    紧凑度
    *      'contlength':    轮廓总长度
    *      'convexity':    凸性
    *      'ra':          等效椭圆的大半径
    *      'rb':        等效椭圆的小半径
    *      'phi':      等效椭圆的方向
    *      'outer_radius':    最小外接圆半径
    *      'max_diameter':    最大直径
    *      'orientation':    轮廓的方向--弧度为单位
    *      'rect2_phi':     最小外接矩形角度
    *      'rect2_len1':    最小外接矩形长度的一半
    *      'rect2_len2':    最小外接矩形宽度的一半
    *参数4:特征之间的逻辑关系  (and or)
    *参数5和参数6:Min,Max特征值的要求范围
    
    
    get_image_size (GrayImage, Width, Height)
    dev_open_window(10,10,Width, Height,'black',WindowHandle)
    dev_display(Edges)
    
    dev_open_window(10,10,Width, Height,'black',WindowHandle1)
    dev_display(SelectedXLD)


    在QtCreator中

      HObject  ho_Image, ho_GrayImage, ho_Edges, ho_SelectedXLD;
      HTuple  hv_Width, hv_Height, hv_WindowHandle;
      HTuple  hv_WindowHandle1;
      ReadImage(&ho_Image, "D:/bb/tu/6.jpg");
      Rgb1ToGray(ho_Image, &ho_GrayImage);
    
      EdgesSubPix(ho_GrayImage, &ho_Edges, "canny", 1, 5, 10);
      //亚像素边缘
    
      SelectShapeXld(ho_Edges, &ho_SelectedXLD, "area", "and", 5500, 5600);
      //根据形状特征选择轮廓
      //参数1:轮廓集
      //参数2:选中的轮廓
      //参数3:形状特征
      //     'area':      轮廓的面积---默认
      //     'area_points':   轮廓点的面积
      //     'row':      中心的行索引
      //     'column':    中心的列索引
      //     'width':     轮廓的宽度
      //     'height':    轮廓的高度
      //     'ratio':     轮廓的高度与宽度之比
      //     'row1':      左上角的行坐标
      //     'column1':   左上角的列坐标
      //     'row2':      右下角的行坐标
      //     'column2':   右下角的列坐标
      //     'circularity':   圆度
      //     'compactness':    紧凑度
      //     'contlength':    轮廓总长度
      //     'convexity':    凸性
      //     'ra':          等效椭圆的大半径
      //     'rb':        等效椭圆的小半径
      //     'phi':      等效椭圆的方向
      //     'outer_radius':    最小外接圆半径
      //     'max_diameter':    最大直径
      //     'orientation':    轮廓的方向--弧度为单位
      //     'rect2_phi':     最小外接矩形角度
      //     'rect2_len1':    最小外接矩形长度的一半
      //     'rect2_len2':    最小外接矩形宽度的一半
      //参数4:特征之间的逻辑关系  (and or)
      //参数5和参数6:Min,Max特征值的要求范围
    
    
      GetImageSize(ho_GrayImage, &hv_Width, &hv_Height);
      SetWindowAttr("background_color","black");
      OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
      HDevWindowStack::Push(hv_WindowHandle);
      if (HDevWindowStack::IsOpen())
        DispObj(ho_Edges, HDevWindowStack::GetActive());
    
      SetWindowAttr("background_color","black");
      OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle1);
      HDevWindowStack::Push(hv_WindowHandle1);
      if (HDevWindowStack::IsOpen())
        DispObj(ho_SelectedXLD, HDevWindowStack::GetActive());

  • 相关阅读:
    基于Typescript和Jest刷题环境搭建与使用
    一些惊艳到我的运维实施技巧和思路
    Zabbix 5.0:监控MySQL出现的问题
    Linux防火墙IPtables配置策略思路
    聊聊二维码
    如何创建SQLite数据库
    PLC工程师学会编程,是一种什么样的体验?
    让你的上位机程序独占鳌头
    使用delve调试golang
    指纹登录是怎么跑起来的
  • 原文地址:https://www.cnblogs.com/liming19680104/p/15999777.html
Copyright © 2020-2023  润新知