• halcondistance_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());

  • 相关阅读:
    Oracle11gR2 INDEX FAST FULL SCAN 成本计算
    SELECT MIN(ID),MAX(ID) FROM TABLE 优化问题
    一次帮助网友优化的SQL案例
    Oracle11gR2 全表扫描成本计算(非工作量模式noworkload)
    & 符号在 SQLPLUS 的转义
    通过设置SQLPLUS ARRAYSIZE(行预取)加快SQL返回速度
    [linux] 如何让你自己写的程序也支持自动补全(bash环境)
    linux 查看系统版本 命令
    ubuntu右键添加打开终端的快捷菜单
    ubuntu右键添加打开终端的快捷菜单
  • 原文地址:https://www.cnblogs.com/liming19680104/p/16040319.html
Copyright © 2020-2023  润新知