halcon-elliptic_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());