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

 

 

 

 

posted @ 2022-03-11 08:35  天子骄龙  阅读(1607)  评论(0)    收藏  举报