• halconfit_rectangle2_contour_xld对轮廓进行矩形拟合


    在HDevelop中

    read_image (Image, 'D:/bb/tu/6.png')
    get_image_size (Image, Width, Height)
    rgb1_to_gray(Image,Image1)
    
    edges_sub_pix (Image1, Edges, 'canny', 1, 5, 10)
    *亚像素边缘
    
    fit_rectangle2_contour_xld (Edges, 'regression', -1, 0, 0, 3, 2, Row, Column, Phi, Length1, Length2, PointOrder)
    *对轮廓进行矩形拟合--得到矩形数据
    *参数1:输入轮廓
    *参数2:用于拟合矩形的算法
    *      'huber', 'regression', 'tukey'
    *参数3:用于计算的轮廓点的最大数量
    *      所有点:-1
    *参数4:轮廓端点之间的最大距离被视为“闭合”
    *参数5:拟合要忽略的轮廓起点和终点的点数
    *参数6:最大迭代次数
    *参数7:
    *参数8:矩形中心的行坐标
    *参数9:矩形中心的列坐标
    *参数10:矩形主轴的方向(弧度)
    *参数11:矩形的第一个半径(长度的一半)
    *参数12:矩形的第二个半径(半宽度)
    *参数13:PointOrder沿边界的点顺序( 'negative'负序, 'positive'正序)
    
    gen_rectangle2_contour_xld (Rectangle, Row, Column, Phi, Length1, Length2)
    
    dev_open_window(10,10,Width, Height,'black',WindowHandle)
    dev_display (Rectangle)
    dev_open_window(10,100,Width, Height,'black',WindowHandle1)
    dev_display (Image)

    在Qt Creator中

      HObject  ho_Image, ho_Image1, ho_Edges, ho_Rectangle;
      HTuple  hv_Width, hv_Height, hv_Row, hv_Column;
      HTuple  hv_Phi, hv_Length1, hv_Length2, hv_PointOrder, hv_WindowHandle;
      HTuple  hv_WindowHandle1;
      ReadImage(&ho_Image, "D:/bb/tu/6.png");
      GetImageSize(ho_Image, &hv_Width, &hv_Height);
      Rgb1ToGray(ho_Image, &ho_Image1);
    
      EdgesSubPix(ho_Image1, &ho_Edges, "canny", 1, 5, 10);
      //亚像素边缘
    
      FitRectangle2ContourXld(ho_Edges, "regression", -1, 0, 0, 3, 2, &hv_Row, &hv_Column, 
          &hv_Phi, &hv_Length1, &hv_Length2, &hv_PointOrder);
      //对轮廓进行矩形拟合--得到矩形数据
      //参数1:输入轮廓
      //参数2:用于拟合矩形的算法
      //     'huber', 'regression', 'tukey'
      //参数3:用于计算的轮廓点的最大数量
      //     所有点:-1
      //参数4:轮廓端点之间的最大距离被视为“闭合”
      //参数5:拟合要忽略的轮廓起点和终点的点数
      //参数6:最大迭代次数
      //参数7:
      //参数8:矩形中心的行坐标
      //参数9:矩形中心的列坐标
      //参数10:矩形主轴的方向(弧度)
      //参数11:矩形的第一个半径(长度的一半)
      //参数12:矩形的第二个半径(半宽度)
      //参数13:PointOrder沿边界的点顺序( 'negative'负序, 'positive'正序)
    
      GenRectangle2ContourXld(&ho_Rectangle, hv_Row, hv_Column, hv_Phi, hv_Length1, hv_Length2);
    
      SetWindowAttr("background_color","black");
      OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
      HDevWindowStack::Push(hv_WindowHandle);
      if (HDevWindowStack::IsOpen())
        DispObj(ho_Rectangle, HDevWindowStack::GetActive());
      SetWindowAttr("background_color","black");
      OpenWindow(10,100,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle1);
      HDevWindowStack::Push(hv_WindowHandle1);
      if (HDevWindowStack::IsOpen())
        DispObj(ho_Image, HDevWindowStack::GetActive());

  • 相关阅读:
    SQLServer之视图简介
    几种快速以伺服静态文件的方法
    Node.js静态文件服务器实战[转]
    mac ssh中文乱码解决
    SSH上传和下载文件
    在web项目中集成pdf.js的默认查看器
    用pip批量更新所有包
    C# 异步锁【转】
    .NET 4并行编程入门之Task的取消[转]
    VIM技巧:选择文本块
  • 原文地址:https://www.cnblogs.com/liming19680104/p/16214616.html
Copyright © 2020-2023  润新知