在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());