分享

halcon测量手绘图形的面积

 撸串子软件 2019-05-07

先自己随意画一个线团,用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();

执行后效果如下:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约