• halcondistance_cc计算两个轮廓之间最小和最大的距离


    在HDevelop中

    read_image (Image9, 'D:/bb/tu/9.jpg')
    rgb1_to_gray (Image9, GrayImage)
    
    threshold (GrayImage, Region, 200, 255)
    connection (Region, ConnectedRegions)
    select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 15400, 15500)
    smallest_rectangle1 (SelectedRegions, Row1, Column1, Row2, Column2)
    *返回最小外接正矩形数据
    gen_rectangle1 (Rectangle, Row1+10, Column1-10, Row2-10, Column2+10)
    *创建一个平行于坐标轴的矩形区域
    *说明:行往里缩小的目的:亚像素边缘时可以去掉上下的边
    reduce_domain (GrayImage, Rectangle, ImageReduced)
    **获取区域图像
    edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40)
    *亚像素边缘
    
    sort_contours_xld (Edges, SortedContours, 'upper_left', 'true', 'column')
    
    select_obj (Edges, ObjectSelected, 1)
    select_obj (Edges, ObjectSelected1, 2)
    
    get_contour_xld (ObjectSelected, Row, Col)
    get_contour_xld (ObjectSelected1, Row3, Col1)
    
    distance_cc (ObjectSelected, ObjectSelected1, 'point_to_point', DistanceMin, DistanceMax)
    *计算两个轮廓之间最小和最大的距离
    *参数1:第一个轮廓
    *参数2:第二个输入轮廓
    *参数3:距离计算模式
    *      'point_to_point'     确定轮廓线之间的最小和最大距离
    *      'point_to_segment'   轮廓线段之间的实际最小距离
    *参数4:返回两个轮廓之间的最小距离
    *参数5:两个轮廓之间的最大距离


    在QtCreator中

      HObject  ho_Image9, ho_GrayImage, ho_Region, ho_ConnectedRegions;
      HObject  ho_SelectedRegions, ho_Rectangle, ho_ImageReduced;
      HObject  ho_Edges, ho_SortedContours, ho_ObjectSelected;
      HObject  ho_ObjectSelected1;
      HTuple  hv_Row1, hv_Column1, hv_Row2, hv_Column2;
      HTuple  hv_Row, hv_Col, hv_Row3, hv_Col1, hv_DistanceMin;
      HTuple  hv_DistanceMax;
      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);
      SelectShape(ho_ConnectedRegions, &ho_SelectedRegions, "area", "and", 15400, 15500);
      SmallestRectangle1(ho_SelectedRegions, &hv_Row1, &hv_Column1, &hv_Row2, &hv_Column2);
      //返回最小外接正矩形数据
      GenRectangle1(&ho_Rectangle, hv_Row1+10, hv_Column1-10, hv_Row2-10, hv_Column2+10);
      //创建一个平行于坐标轴的矩形区域
      //说明:行往里缩小的目的:亚像素边缘时可以去掉上下的边
      ReduceDomain(ho_GrayImage, ho_Rectangle, &ho_ImageReduced);
      //*获取区域图像
      EdgesSubPix(ho_ImageReduced, &ho_Edges, "canny", 1, 20, 40);
      //亚像素边缘
    
      SortContoursXld(ho_Edges, &ho_SortedContours, "upper_left", "true", "column");
    
      SelectObj(ho_Edges, &ho_ObjectSelected, 1);
      SelectObj(ho_Edges, &ho_ObjectSelected1, 2);
    
      GetContourXld(ho_ObjectSelected, &hv_Row, &hv_Col);
      GetContourXld(ho_ObjectSelected1, &hv_Row3, &hv_Col1);
    
      DistanceCc(ho_ObjectSelected, ho_ObjectSelected1, "point_to_point", &hv_DistanceMin, 
          &hv_DistanceMax);
      //计算两个轮廓之间最小和最大的距离
      //参数1:第一个轮廓
      //参数2:第二个输入轮廓
      //参数3:距离计算模式
      //     'point_to_point'     确定轮廓线之间的最小和最大距离
      //     'point_to_segment'   轮廓线段之间的实际最小距离
      //参数4:返回两个轮廓之间的最小距离
      //参数5:两个轮廓之间的最大距离

  • 相关阅读:
    cordova的安装与配置
    JavaScript-string
    JavaScript-Number
    android-适配器
    网络操作-转码(乱码情况处理)
    网络操作-请求优先级
    Android读取权限
    I/O-<File区别>
    I/O-<File实例>
    I/O-<文件读写、输出>
  • 原文地址:https://www.cnblogs.com/liming19680104/p/16038743.html
Copyright © 2020-2023  润新知