在HDevelop中
dev_close_window () dev_update_off() read_image (Image9, 'D:/bb/tu/9.jpg') rgb1_to_gray (Image9, GrayImage) threshold (GrayImage, Region, 200, 255) connection (Region, ConnectedRegions) select_obj (ConnectedRegions, ObjectSelected, 2) gen_contour_region_xld (ObjectSelected, Contours, 'border') *根據區域創建XLD輪廓 Row:=[10,15] Column:=[10,15] distance_pc (Contours, Row, Column, DistanceMin, DistanceMax) *計算點和輪廓之間的距離 *計算一個或多個點與單個輪廓之間的距離 *參數1:輸入xld輪廓 *參數2:點的行坐標 *參數3:點的列坐標 *參數4:返回點與輪廓之間的最小距離 *參數5:返回點與輪廓之間的最大距離 gen_region_points (Region1, Row, Column) *創建點區域 get_image_size (Image9, Width, Height) dev_open_window(10,10,Width, Height,'black',WindowHandle) dev_display(Region1) dev_display(Contours)
在QtCreator中
HObject ho_Image9, ho_GrayImage, ho_Region, ho_ConnectedRegions;
HObject ho_ObjectSelected, ho_Contours, ho_Region1;
HTuple hv_Row, hv_Column, hv_DistanceMin, hv_DistanceMax;
HTuple hv_Width, hv_Height, hv_WindowHandle;
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); SelectObj(ho_ConnectedRegions, &ho_ObjectSelected, 2); GenContourRegionXld(ho_ObjectSelected, &ho_Contours, "border"); //根據區域創建XLD輪廓 hv_Row.Clear(); hv_Row[0] = 10; hv_Row[1] = 15; hv_Column.Clear(); hv_Column[0] = 10; hv_Column[1] = 15; DistancePc(ho_Contours, hv_Row, hv_Column, &hv_DistanceMin, &hv_DistanceMax); //計算點和輪廓之間的距離 //計算一個或多個點與單個輪廓之間的距離 //參數1:輸入xld輪廓 //參數2:點的行坐標 //參數3:點的列坐標 //參數4:返回點與輪廓之間的最小距離 //參數5:返回點與輪廓之間的最大距離 GenRegionPoints(&ho_Region1, hv_Row, hv_Column); //創建點區域 GetImageSize(ho_Image9, &hv_Width, &hv_Height); SetWindowAttr("background_color","black"); OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle); HDevWindowStack::Push(hv_WindowHandle); if (HDevWindowStack::IsOpen()) DispObj(ho_Region1, HDevWindowStack::GetActive()); if (HDevWindowStack::IsOpen()) DispObj(ho_Contours, HDevWindowStack::GetActive());