halcon几何匹配相关算子与参数解析
2015-09-07 17:38
405 查看
1、制作模板
create_shape_model(Template : :NumLevels,AngleStart,AngleExtent,AngleStep,Optimization,Metric,Contrast,MinContrast
:ModelID)
Template :
用于创建模板的图像
NumLevels:
最大金字塔级别,级别越高速度越快,但是图像越模糊,不便于识别
AngleStart:
最小旋转角度,起始角度
AngleExtent:
角度旋转范围
AngleStep:
角度步长
Optimization:
优化类型
List of values:'auto', 'none', 'point_reduction_low', 'point_reduction_medium', 'point_reduction_high', 'pregeneration', 'no_pregeneration'
pregeneration:图像缓存
Metric:
度量方式
List of values:'use_polarity', 'ignore_global_polarity', 'ignore_local_polarity',
'ignore_color_polarity'
'use_polarity':图片和模板必须要有相同的对比度
'ignore_global_polarity':图片和模板必须要有相同的或者相反的对比度
'ignore_local_polarity':图片和模板对比度可以是变化的
Contrast:
对比度,用来区分目标物和背景以及目标物的各个部分
MinContrast :
最小对比度,用来区分目标物和噪点
ModelID:
模板句柄,用于结果输出
2、形状匹配
find_shape_model(Image : :ModelID,AngleStart,AngleExtent,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels,Greediness
:Row,Column,Angle,Score)
MinScore:
最小分数值,0 ≤ MinScore ≤ 1,分值越大速度越快
NumMatches:
匹配个数,如果匹配到的个数小于设定的值,将以MinScore为准
MaxOverlap:
最大重叠度,有遮挡
SubPixel:
亚像素
List of values:'none', 'interpolation', 'least_squares', 'least_squares_high', 'least_squares_very_high', 'max_deformation 1', 'max_deformation 2', 'max_deformation
3', 'max_deformation 4', 'max_deformation 5', 'max_deformation 6'
插值拟合、最小二乘拟合
Greediness :
启发式搜索的贪心值
3、获取轮廓
get_shape_model_contours( :
ModelContours :
ModelID,
Level : )
该算子主要用于获取形状模板的轮廓
ModelContours :
用于返回模板形状的亚像素轮廓
ModelID:
模板句柄
4、显示匹配结果
*依次显示多个匹配结果
get_shape_model_contours (Model, ModelID, 1)
for I := 0 to |Score|-1 by 1
*齐次变换
hom_mat2d_identity (HomMat2DIdentity)
*平移
hom_mat2d_translate (HomMat2DIdentity, Row[I], Column[I], HomMat2DTranslate)
*旋转
hom_mat2d_rotate (HomMat2DTranslate, Angle[I], Row[I], Column[I], HomMat2DRotate)
*缩放
hom_mat2d_scale (HomMat2DRotate, Scale[I], Scale[I], Row[I], Column[I], HomMat2DScale)
*变换
affine_trans_contour_xld (Model, ModelTrans, HomMat2DScale)
dev_display (ModelTrans)
endfor
create_shape_model(Template : :NumLevels,AngleStart,AngleExtent,AngleStep,Optimization,Metric,Contrast,MinContrast
:ModelID)
Template :
用于创建模板的图像
NumLevels:
最大金字塔级别,级别越高速度越快,但是图像越模糊,不便于识别
AngleStart:
最小旋转角度,起始角度
AngleExtent:
角度旋转范围
AngleStep:
角度步长
Optimization:
优化类型
List of values:'auto', 'none', 'point_reduction_low', 'point_reduction_medium', 'point_reduction_high', 'pregeneration', 'no_pregeneration'
pregeneration:图像缓存
Metric:
度量方式
List of values:'use_polarity', 'ignore_global_polarity', 'ignore_local_polarity',
'ignore_color_polarity'
'use_polarity':图片和模板必须要有相同的对比度
'ignore_global_polarity':图片和模板必须要有相同的或者相反的对比度
'ignore_local_polarity':图片和模板对比度可以是变化的
Contrast:
对比度,用来区分目标物和背景以及目标物的各个部分
MinContrast :
最小对比度,用来区分目标物和噪点
ModelID:
模板句柄,用于结果输出
2、形状匹配
find_shape_model(Image : :ModelID,AngleStart,AngleExtent,MinScore,NumMatches,MaxOverlap,SubPixel,NumLevels,Greediness
:Row,Column,Angle,Score)
MinScore:
最小分数值,0 ≤ MinScore ≤ 1,分值越大速度越快
NumMatches:
匹配个数,如果匹配到的个数小于设定的值,将以MinScore为准
MaxOverlap:
最大重叠度,有遮挡
SubPixel:
亚像素
List of values:'none', 'interpolation', 'least_squares', 'least_squares_high', 'least_squares_very_high', 'max_deformation 1', 'max_deformation 2', 'max_deformation
3', 'max_deformation 4', 'max_deformation 5', 'max_deformation 6'
插值拟合、最小二乘拟合
Greediness :
启发式搜索的贪心值
3、获取轮廓
get_shape_model_contours( :
ModelContours :
ModelID,
Level : )
该算子主要用于获取形状模板的轮廓
ModelContours :
用于返回模板形状的亚像素轮廓
ModelID:
模板句柄
4、显示匹配结果
*依次显示多个匹配结果
get_shape_model_contours (Model, ModelID, 1)
for I := 0 to |Score|-1 by 1
*齐次变换
hom_mat2d_identity (HomMat2DIdentity)
*平移
hom_mat2d_translate (HomMat2DIdentity, Row[I], Column[I], HomMat2DTranslate)
*旋转
hom_mat2d_rotate (HomMat2DTranslate, Angle[I], Row[I], Column[I], HomMat2DRotate)
*缩放
hom_mat2d_scale (HomMat2DRotate, Scale[I], Scale[I], Row[I], Column[I], HomMat2DScale)
*变换
affine_trans_contour_xld (Model, ModelTrans, HomMat2DScale)
dev_display (ModelTrans)
endfor
相关文章推荐
- 面向对象分析和设计(OOA/D) --- 一个例子
- 元素的获取
- JAX-WS(二)- client
- 浅谈被加壳ELF的调试
- 关于ScrollView中嵌套GridVIew只显示一行解决方法以及GridView行高计算方法
- jsp和servlet的区别
- 4种必须知道的Android屏幕自适应解决方案
- ios 文件上传
- dTree 简介信息
- jsp页面跳转,WEB-INF
- 判断语句中,同一个字段多个or,会影响查询效率,可以改用in语句
- (第二周项目1)讨论函数参数传递的三种方式
- LINQ to SQL SqlMethods操作
- Android模块化编程之引用本地的aar
- 清除NSUserDefaults缓存
- IOS_oc 数组
- 生成GUID的两种方法
- jquery select
- Websphere安装程序的时候抛OutOfMemoryEror/Java head space
- 用php生成静态html页面