halcon-distance_pc計算點和輪廓之間的距離


  

在HDevelop中

dev_close_window ()
dev_update_off()
read_image (Image9, 'D:/bb/tu/9.jpg')
rgb1_to_gray (Image9, GrayImage)

threshold (GrayImage, Region, 200, 255)
connection (Region, ConnectedRegions)
select_obj (ConnectedRegions, ObjectSelected, 2)
gen_contour_region_xld (ObjectSelected, Contours, 'border')
*根據區域創建XLD輪廓

Row:=[10,15]
Column:=[10,15]

distance_pc (Contours, Row, Column, DistanceMin, DistanceMax)
*計算點和輪廓之間的距離
*計算一個或多個點與單個輪廓之間的距離
*參數1:輸入xld輪廓
*參數2:點的行坐標
*參數3:點的列坐標
*參數4:返回點與輪廓之間的最小距離
*參數5:返回點與輪廓之間的最大距離

gen_region_points (Region1, Row, Column)
*創建點區域

get_image_size (Image9, Width, Height)
dev_open_window(10,10,Width, Height,'black',WindowHandle)
dev_display(Region1)
dev_display(Contours)

 

 

 

  


在QtCreator中

  HObject  ho_Image9, ho_GrayImage, ho_Region, ho_ConnectedRegions;
  HObject  ho_ObjectSelected, ho_Contours, ho_Region1;
  HTuple  hv_Row, hv_Column, hv_DistanceMin, hv_DistanceMax;
  HTuple  hv_Width, hv_Height, hv_WindowHandle;
  ReadImage(&ho_Image9, "D:/bb/tu/9.jpg");
  Rgb1ToGray(ho_Image9, &ho_GrayImage);

  Threshold(ho_GrayImage, &ho_Region, 200, 255);
  Connection(ho_Region, &ho_ConnectedRegions);
  SelectObj(ho_ConnectedRegions, &ho_ObjectSelected, 2);
  GenContourRegionXld(ho_ObjectSelected, &ho_Contours, "border");
  //根據區域創建XLD輪廓

  hv_Row.Clear();
  hv_Row[0] = 10;
  hv_Row[1] = 15;
  hv_Column.Clear();
  hv_Column[0] = 10;
  hv_Column[1] = 15;

  DistancePc(ho_Contours, hv_Row, hv_Column, &hv_DistanceMin, &hv_DistanceMax);
  //計算點和輪廓之間的距離
  //計算一個或多個點與單個輪廓之間的距離
  //參數1:輸入xld輪廓
  //參數2:點的行坐標
  //參數3:點的列坐標
  //參數4:返回點與輪廓之間的最小距離
  //參數5:返回點與輪廓之間的最大距離

  GenRegionPoints(&ho_Region1, hv_Row, hv_Column);
  //創建點區域

  GetImageSize(ho_Image9, &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_Region1, HDevWindowStack::GetActive());
  if (HDevWindowStack::IsOpen())
    DispObj(ho_Contours, HDevWindowStack::GetActive());

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM