先自己随意画一个线团,用halcon将其进行填充处理,测量出填充后的面积。 
read_image (Image,
'C:/Users/Administrator/Desktop/无标题.png') rgb1_to_gray(Image, GrayImage1) //rgb转换灰度 threshold (GrayImage1, Regions, 0, 236) //灰度变换 *connection (Regions, Connection) fill_up(Regions, RegionFillUp1) //填充 area_center (RegionFillUp1, Area, Row,
Column) //计算面积 *select_shape(RegionFillUp1,
SelectedRegions1, 'area', 'and', 150, 99999) disp_message (200000,'面积:'+ Area+'坐标:'+Row+','+Column, 'window', 0, 0,
'black', 'true') 执行后效果如下: 
用aardio实现: import com; HOperatorSetX = com.CreateObject("{6ebd90e2-d219-11d2-ade5-0000c00f4ef9}") Image = HOperatorSetX.ReadImage( "img/getpix" ); //var Width , Height = HOperatorSetX.GetImageSize( Image ); var WindowHandle = HOperatorSetX.OpenWindow( 0 , 0 , mainForm.picturebox.width , mainForm.picturebox.height , mainForm.picturebox.hwnd , "transparent", "" ); mainForm.button.oncommand = function(id,event){ var GrayImage = HOperatorSetX.Rgb1ToGray(Image); var Region = HOperatorSetX.Threshold(GrayImage , 0 , 236 ); var RegionFillUp = HOperatorSetX.FillUp( Region ); var Area , Row , Column = HOperatorSetX.AreaCenter(RegionFillUp ); HOperatorSetX.DispObj( RegionFillUp , WindowHandle ); mainForm.text="面积:"++Area++"坐标:"++Row++","++Column mainForm.show(); return win.loopMessage(); 执行后效果如下:
|