14、创建ROI
1、 gen_empty_obj( : EmptyObject : : ) 1
2、 gen_empty_region( : EmptyRegion : : ) 1
3、 draw_circle( : : WindowHandle : Row, Column, Radius) 2
4、 draw_circle_mod( : : WindowHandle, RowIn, ColumnIn, RadiusIn : Row, Column, Radius) 3
5、 draw_ellipse( : : WindowHandle : Row, Column, Phi, Radius1, Radius2) 4
7、 draw_line( : : WindowHandle : Row1, Column1, Row2, Column2) 5
13、draw_point( : : WindowHandle : Row, Column)' 6
14、draw_point_mod( : : WindowHandle, RowIn, ColumnIn : Row, Column) 6
15、draw_rectangle1( : : WindowHandle : Row1, Column1, Row2, Column2) 6
17、draw_rectangle2( : : WindowHandle : Row, Column, Phi, Length1, Length2) 7
19、draw_region( : Region : WindowHandle : ) 7
20、draw_xld( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio : ) 7
21、draw_xld_mod(ContIn : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Edit : ) 7
- gen_empty_obj( : EmptyObject : : )
功能:创建一个空的对象(tuple元组)
gen_empty_obj (EmptyObject)
- gen_empty_region( : EmptyRegion : : )
功能:创建一个空区域(region)
gen_empty_region (EmptyRegion)
绘制ROI:以"draw_"开头,通过鼠标绘制出指定的图形后,就可以通过"gen_"来创建这个图形的region并且利用。
- draw_circle( : : WindowHandle : Row, Column, Radius)
功能:在指定窗口中绘制一个交互式圆,把圆的参数赋值给Row, Column, Radius获得圆的源点坐标和半径后可以通过gen_circle( : Circle : Row, Column, Radius : )等绘制会一个region
例子:
read_image (Image, 'lena')
draw_circle (3600, x, y, R)
分析:当程序运行到draw_circle()函数时,就会卡主,并激活了"图形窗口",这时需要在"图形窗口"中用鼠
标左键绘制圆形,并单击右键确定。
右键单击确定后:x y R就会得到相应的值:'
注:上图中看到的图形像是椭圆型,其实不是这样的,这个图片通过拉伸才把圆形显示成了椭圆型。
功能:在原有圆的基础上交互式修改一个圆形,但程序运行到这一行时,会卡主,且Halcon会激活指定句柄的图形窗口和显示出已有的圆形(RowIn, ColumnIn, RadiusIn),此时可以对这个已有的圆形进行修改,修改后右键单击确定,此时Row, Column, Radius会得到修改后的值。
右键单击确定后:
功能:交互式画一个椭圆,其中Phi表示长半轴的角度,即下图的蓝色箭头
- draw_ellipse_mod( : : WindowHandle, RowIn, ColumnIn, PhiIn, Radius1In, Radius2In : Row, Column, Phi, Radius1, Radius2)
功能:在原有的基础上修改一个椭圆
- draw_line( : : WindowHandle : Row1, Column1, Row2, Column2)
功能:画直线
- draw_line_mod( : : WindowHandle, Row1In, Column1In, Row2In, Column2In : Row1, Column1, Row2, Column2)
功能:在原有直线的基础上修改一条直线
功能:交互式画出一个nurbs曲线
效果:这是会产生一个图形变量
10、draw_nurbs_mod( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Edit, Degree, RowsIn, ColsIn, WeightsIn :
功能:在原有的nurbs曲线上修改一个nurbs曲线
11、draw_nurbs_interp_mod( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Edit, Degree, RowsIn,
ColsIn, TangentsIn : ControlRows, ControlCols, Knots, Rows, Cols, Tangents)
功能:利用插值交互式画一个nurbs曲线。
12、draw_nurbs_interp_mod( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Edit, Degree, RowsIn, ColsIn,
TangentsIn : ControlRows, ControlCols, Knots, Rows, Cols, Tangents)
功能:在原有nurbs曲线的基础上利用插值交互式创建一个nurbs
13、draw_point( : : WindowHandle : Row, Column)'
功能:画一个点
14、draw_point_mod( : : WindowHandle, RowIn, ColumnIn : Row, Column)
功能:在原有点的基础上修改一个点
15、draw_rectangle1( : : WindowHandle : Row1, Column1, Row2, Column2)
画一个平行于坐标轴的矩形
16、draw_rectangle1_mod( : : WindowHandle, Row1In, Column1In, Row2In, Column2In : Row1, Column1, Row2, Column2)
功能:在原有矩形的基础上修改一个平行于坐标轴的矩形
17、draw_rectangle2( : : WindowHandle : Row, Column, Phi, Length1, Length2)
交互式画一个任意角度的矩形(仿射矩形)
18、draw_rectangle2_mod( : : WindowHandle, RowIn, ColumnIn, PhiIn, Length1In, Length2In : Row, Column, Phi, Length1,
功能:在原有的仿射矩形基础上修改一个任意角度的仿射矩形
19、draw_region( : Region : WindowHandle : )
交互式画出一个闭合区域
20、draw_xld( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio : )
功能:交互式画出一个轮廓(XLD),可以使闭合的也可以是不闭合的,当点击类似鼠标处的向上框时,会使这个
xld闭合
21、draw_xld_mod(ContIn : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Edit : )
功能:在现有的轮廓上交互修改一个轮廓