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