在HDevelop中
dev_close_window () read_image (Image, 'D:/bb/tu/6.jpg') rgb1_to_gray (Image, GrayImage) edges_sub_pix (GrayImage, Edges, 'canny', 1, 5, 10) *亞像素邊緣 select_shape_xld (Edges, SelectedXLD, 'area', 'and', 5500, 5600) *根據形狀特征選擇輪廓 *參數1:輪廓集 *參數2:選中的輪廓 *參數3:形狀特征 * 'area': 輪廓的面積---默認 * 'area_points': 輪廓點的面積 * 'row': 中心的行索引 * 'column': 中心的列索引 * 'width': 輪廓的寬度 * 'height': 輪廓的高度 * 'ratio': 輪廓的高度與寬度之比 * 'row1': 左上角的行坐標 * 'column1': 左上角的列坐標 * 'row2': 右下角的行坐標 * 'column2': 右下角的列坐標 * 'circularity': 圓度 * 'compactness': 緊湊度 * 'contlength': 輪廓總長度 * 'convexity': 凸性 * 'ra': 等效橢圓的大半徑 * 'rb': 等效橢圓的小半徑 * 'phi': 等效橢圓的方向 * 'outer_radius': 最小外接圓半徑 * 'max_diameter': 最大直徑 * 'orientation': 輪廓的方向--弧度為單位 * 'rect2_phi': 最小外接矩形角度 * 'rect2_len1': 最小外接矩形長度的一半 * 'rect2_len2': 最小外接矩形寬度的一半 *參數4:特征之間的邏輯關系 (and or) *參數5和參數6:Min,Max特征值的要求范圍 get_image_size (GrayImage, Width, Height) dev_open_window(10,10,Width, Height,'black',WindowHandle) dev_display(Edges) dev_open_window(10,10,Width, Height,'black',WindowHandle1) dev_display(SelectedXLD)
在QtCreator中
HObject ho_Image, ho_GrayImage, ho_Edges, ho_SelectedXLD;
HTuple hv_Width, hv_Height, hv_WindowHandle;
HTuple hv_WindowHandle1;
ReadImage(&ho_Image, "D:/bb/tu/6.jpg"); Rgb1ToGray(ho_Image, &ho_GrayImage); EdgesSubPix(ho_GrayImage, &ho_Edges, "canny", 1, 5, 10); //亞像素邊緣 SelectShapeXld(ho_Edges, &ho_SelectedXLD, "area", "and", 5500, 5600); //根據形狀特征選擇輪廓 //參數1:輪廓集 //參數2:選中的輪廓 //參數3:形狀特征 // 'area': 輪廓的面積---默認 // 'area_points': 輪廓點的面積 // 'row': 中心的行索引 // 'column': 中心的列索引 // 'width': 輪廓的寬度 // 'height': 輪廓的高度 // 'ratio': 輪廓的高度與寬度之比 // 'row1': 左上角的行坐標 // 'column1': 左上角的列坐標 // 'row2': 右下角的行坐標 // 'column2': 右下角的列坐標 // 'circularity': 圓度 // 'compactness': 緊湊度 // 'contlength': 輪廓總長度 // 'convexity': 凸性 // 'ra': 等效橢圓的大半徑 // 'rb': 等效橢圓的小半徑 // 'phi': 等效橢圓的方向 // 'outer_radius': 最小外接圓半徑 // 'max_diameter': 最大直徑 // 'orientation': 輪廓的方向--弧度為單位 // 'rect2_phi': 最小外接矩形角度 // 'rect2_len1': 最小外接矩形長度的一半 // 'rect2_len2': 最小外接矩形寬度的一半 //參數4:特征之間的邏輯關系 (and or) //參數5和參數6:Min,Max特征值的要求范圍 GetImageSize(ho_GrayImage, &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_Edges, HDevWindowStack::GetActive()); SetWindowAttr("background_color","black"); OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle1); HDevWindowStack::Push(hv_WindowHandle1); if (HDevWindowStack::IsOpen()) DispObj(ho_SelectedXLD, HDevWindowStack::GetActive());