halcon-select_shape_std选择给定形状的区域
在HDevelop中
read_image (Image, 'D:/bb/tu/4.jpg') rgb1_to_gray(Image,Image1) threshold (Image1, Region,[80,87,206,195] , [90,100, 228,205]) select_shape_std (Region, SelectedRegions, 'max_area', 70) *选择给定形状的区域 *参数1:区域集 *参数2:输出区域 *输出3:形状特征 * 'max_area' 面积最大的区域 * 'rectangle1' 通过smallest_rectangle1计算区域的最小外接平行矩形,如果计算出的区域与原区域面积百分比大于参数4 ,则此区域选中输出 * 'rectangle2' 通过smallest_rectangle2计算区域的矩形,如果计算出的区域与原区域面积百分比大于参数4 ,则此区域选中输出
*参数4:相似度百分比
get_image_size (Image1, Width, Height) dev_open_window(10,10,Width, Height,'black',WindowHandle) dev_display(SelectedRegions)
在Qt Creator中
HObject ho_Image, ho_Image1, ho_Region, ho_SelectedRegions;
HTuple hv_Width, hv_Height, hv_WindowHandle;
ReadImage(&ho_Image, "D:/bb/tu/4.jpg"); Rgb1ToGray(ho_Image, &ho_Image1); Threshold(ho_Image1, &ho_Region, (((HTuple(80).Append(87)).Append(206)).Append(195)), (((HTuple(90).Append(100)).Append(228)).Append(205))); SelectShapeStd(ho_Region, &ho_SelectedRegions, "max_area", 70); //选择给定形状的区域 //参数1:区域集 //参数2:输出区域 //输出3:形状特征 // 'max_area' 面积最大的区域 // 'rectangle1' 通过smallest_rectangle1计算区域的最小外接平行矩形,如果计算出的区域与原区域面积百分比大于参数4 ,则此区域选中输出
// 'rectangle2' 通过smallest_rectangle2计算区域的矩形,如果计算出的区域与原区域面积百分比大于参数4 ,则此区域选中输出
//参数4:相似度百分比
GetImageSize(ho_Image1, &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_SelectedRegions, HDevWindowStack::GetActive());