• halconelliptic_axis计算区域的等效椭圆数据


    在HDevelop中

    dev_close_window ()
    dev_update_off()
    
    read_image (Image, 'D:/bb/tu/4.png')
    get_image_size (Image, Width, Height)
    rgb1_to_gray(Image,Image1)
    threshold (Image1, Region, 70, 100)
    
    elliptic_axis (Region, Ra, Rb, Phi)
    *作用:计算区域的等效椭圆数据
    *参数1:输入区域
    *参数2:输出主半径
    *参数3:输出次半径
    *参数4:输出主半径和X轴的夹角(以弧度为单位  - pi / 2 < Phi && Phi <= pi / 2*计算与输入区域具有相同方向和相同宽高比的椭圆的半径Ra和Rb以及方向Phi,多个输入区域可以作为数组传递
    
    dev_open_window(10,10,Width, Height,'black',WindowHandle)
    
    gen_ellipse (Ellipse, Height/2, Width/2, Phi, Ra, Rb)
    
    dev_display(Ellipse)


    在Qt Creator中

      HObject  ho_Image, ho_Image1, ho_Region, ho_Ellipse;
      HTuple  hv_Width, hv_Height, hv_Ra, hv_Rb, hv_Phi;
      HTuple  hv_WindowHandle;
      ReadImage(&ho_Image, "D:/bb/tu/4.png");
      GetImageSize(ho_Image, &hv_Width, &hv_Height);
      Rgb1ToGray(ho_Image, &ho_Image1);
      Threshold(ho_Image1, &ho_Region, 70, 100);
    
      EllipticAxis(ho_Region, &hv_Ra, &hv_Rb, &hv_Phi);
      //作用:计算区域的等效椭圆数据
      //参数1:输入区域
      //参数2:输出主半径
      //参数3:输出次半径
      //参数4:输出主半径和X轴的夹角(以弧度为单位  - pi / 2 < Phi && Phi <= pi / 2)
      //计算与输入区域具有相同方向和相同宽高比的椭圆的半径Ra和Rb以及方向Phi,多个输入区域可以作为数组传递
    
      SetWindowAttr("background_color","black");
      OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
      HDevWindowStack::Push(hv_WindowHandle);
    
      GenEllipse(&ho_Ellipse, hv_Height/2, hv_Width/2, hv_Phi, hv_Ra, hv_Rb);
    
      if (HDevWindowStack::IsOpen())
        DispObj(ho_Ellipse, HDevWindowStack::GetActive());

  • 相关阅读:
    微信小程序上拉分页
    关于检测数据类型,三种方法(typeof,instanceof,Object.prototype.toString.call())优缺点
    如何在Devc++中配置OpenCv
    数据库系统和应用
    这是一篇测试文档
    Pandas 表格合并
    es6一些好用的方法总结
    前端面试题
    超有趣! JS是怎么计算1+2!!!
    彻底理解闭包
  • 原文地址:https://www.cnblogs.com/liming19680104/p/16194590.html
Copyright © 2020-2023  润新知