halcon-select_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());

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM