gen_region_points()
画点成区域【参数可以使用数组,例如这种形式:[x1,x2],[y1,y2] ;前面[]里的都是row坐标,后面[]里的都是column坐标】
disp_line()
在两点之间生成一条直线(没有输出变量不能保存,因此不占内存)
get_region_points()
获取组成区域的点
gen_region_line()
在两点之间生成一条直线(可以保存)
intersection()
region与(可用来求两直线的交点)
orientation_region()
获得区域的方向,与水平X轴的夹角
distance_pr()
求point与region的距离
distance_pp()
求point与point的距离
distance_rr_min()
求两个region的最小距离并返回最小距离的点对
distance_lr()
求线与区域的距离
distance_pc()
求点到轮廓的距离
distance_pl()
求点到直线的距离(若求点到线段的距离,求的是点到线段所在直线的距离)
distance_ps()
求点到线段的距离
distance_cc()
求两个轮廓的距离
select_region_point()
选中一个固定位置坐标上存在的区域
skeleton()
得到一个区域的骨架,骨架为一个像素宽
junctions_skeleton()
寻找骨架的交点和结束点
gen_grid_region()
生成一个网格区域【gen是generate的缩写】,在滤除杂质方面比较好用。通过修改网格密度,控制筛选粒度。
projection_pl()
点到线的投影
saddle_points_sub_pix()
找鞍点【一个方向上值最大,另一个方向上值最小(灰度值)】
A point is accepted to be a saddle point if the absolute values of both eigenvalues of the Hessian matrix are greater thanThreshold but their signs differ.
如果海赛阵特征值的绝对值都比阈值大,且它们的符号不同,那么这个点则被认为是鞍点。
gen_cross_contour_xld()
为每个输入点生成一个交叉形状的XLD轮廓
orientation_region()
计算区域的方向(-π/2< θ <=π/2)
用的是这个算子elliptic_axis(),求出来的phi角度。话说,这是一个求等效椭圆参数的算子。
而这个算子是通过moments_region_2nd()算子,使用图形的Geometric Moments(几何矩)来找到的区域质心和区域方向。
line_orientation()
计算线的方向(-π/2<= θ <π/2)
经实验测试:将输入直线转换成向量,以直线上任意一点作为基准点,做一条横线,作为X轴。使向量顺时针转动至与X轴重合,若旋转角度>90°,则取逆时针方向旋转的角度加负号;若旋转角度<90°,则取该角度为夹角,即直线的方向。
tuple_abs()求绝对值;tuple_deg()弧度向角度的转换
line_position()
计算线的中心,长度和方向【其中方向和line_orientation()取的值相同】
angle_ll()
计算两条直线的夹角(-π<= θ <π)
经实验测试:求夹角的过程是,将直线A和B转换成向量,以交点为中心,将A向量逆时针向B向量的方向旋转至与B向量重合,若旋转的角度>180°,则取顺时针方向旋转的角度加负号;若旋转角度<180°,则取该角度为夹角。
angle_lx()
计算直线和水平轴的夹角(-π<= θ <π)
经实验测试:将输入直线转换成向量,以起始点作为基准点,做一条横线,作为X轴。使向量顺时针转动至与X轴重合,若旋转角度>180°,则取逆时针方向旋转的角度加负号;若旋转角度<180°,则取该角度为夹角。
move_region()
移动一个区域(通过后两个参数给出的向量来实现)
get_mbutton()
获得鼠标按下时的坐标(Button这个参数,返回的是刚才做了什么动作,也就是刚才到底按了哪个键)
手动画一个区域(运行时,等待鼠标输入画线)
-----------------------------------------------------------------------------------------------------------------------------------------------------------2016/2/25 17:53
bandpass_image()
使用带通滤波器提取边缘【表示不会用这个算子,结果图像跟一坨屎一样】
get_region_runs()
输入一个区域,将该区域横向切条,切条的宽度为1像素,输出为切条的纵坐标和左右两端的横坐标
gen_region_runs()
输入一个纵坐标和两个横坐标,产生一个以此纵坐标为水平线,从左至右水平延展的横线区域
boundary()
获取一个区域的轮廓
-----------------------------------------------------------------------------------------------------------------------------------------------------------2016/3/12 17:06