抓圆工具-记录

news/2024/7/23 9:25:22 标签: 工作记录

* Matching 01: BEGIN of generated code for model initialization
set_system ('border_shape_models', 'false')
* Matching 01: Obtain the model image
*read_image (Image, 'E:/下载/3倍镜PCB/1-10.bmp')
* Matching 01: build the ROI from basic regions
*gen_circle (ModelRegion, 974.458,1579.111, 230.85)
Row1M:=974.458
Column1M:=1569.333
CircleInitRadius:=294.552
* Matching 01: reduce the model template
*reduce_domain (Image, ModelRegion, TemplateImage)
* Matching 01: create the shape model
*create_shape_model (TemplateImage, 7, rad(0), rad(360), rad(0.4972), ['point_reduction_high','no_pregeneration'], 'use_polarity', [45,60,4], 3, ModelId)
* Matching 01: get the model contour for transforming it later into the image
read_shape_model ('E://demo//MachineVisionSoftWare//MachineVisionSoftWare//bin//x86//Debug//shmFiles//CreateShapeModel20230310211013.shm', ModelID)
get_shape_model_contours (ModelContours, ModelID, 1)
* Matching 01: END of generated code for model initialization
* Matching 01: BEGIN of generated code for model application
* Matching 01: the following operations are usually moved into
* Matching 01: that loop where the aquired images are processed
* Matching 01: Find the model
read_image (Image1, 'E:/下载/3倍镜PCB/1-20.bmp')
find_shape_model (Image1, ModelID,0, 360, 0.3, 0, 0.5, 'least_squares', [7,1], 0.75, ModelRow, ModelColumn, ModelAngle, ModelScore)
* Matching 01: transform the model contours into the detected positions
*for MatchingObjIdx := 0 to |ModelScore| - 1 by 1
*    hom_mat2d_identity (HomMat)
*    hom_mat2d_rotate (HomMat, ModelAngle[MatchingObjIdx], 0, 0, HomMat)
*    hom_mat2d_translate (HomMat, ModelRow[MatchingObjIdx], ModelColumn[MatchingObjIdx], HomMat)
*    affine_trans_contour_xld (ModelContours, TransContours, HomMat)
*    dev_display (TransContours)
*endfor
for MatchingObjIdx := 0 to |ModelScore| - 1 by 1
    hom_mat2d_identity (HomMat)
    hom_mat2d_translate (HomMat, ModelRow[MatchingObjIdx], ModelColumn[MatchingObjIdx], HomMat2DTranslate)
    hom_mat2d_rotate (HomMat2DTranslate, ModelAngle[MatchingObjIdx],  ModelRow[MatchingObjIdx], ModelColumn[MatchingObjIdx], HomMat2DRotate)
    vector_angle_to_rigid (ModelRow, ModelColumn, ModelAngle, ModelRow, ModelColumn, ModelAngle, HomMat2D)
    affine_trans_contour_xld (ModelContours, ShapeModelTrans, HomMat2DRotate)
endfor

affine_trans_pixel (HomMat2D,Row1M,Column1M, Rect1RowCheck, Rect1ColCheck)
create_metrology_model (MetrologyHandle)
*创建测量句柄
*create_metrology_model (MetrologyHandle)
*将圆形或圆弧型的测量对象(ROI)添加到测量模型
add_metrology_object_circle_measure (MetrologyHandle, Rect1RowCheck,Rect1ColCheck,  CircleInitRadius, 10, 5, 1, 0,[], [], Index1)
*add_metrology_object_circle_measure (MetrologyHandle,Rect1RowCheck, Rect1ColCheck, \
                             CircleInitRadius, 10, 5,1, 0, 'num_measures', 30, Index)
*set_metrology_object_param (MetrologyHandle, 'all', 'num_measures',35)

set_metrology_object_param (MetrologyHandle, 'all', 'measure_transition', 'negative')
apply_metrology_model (Image1, MetrologyHandle)
*获取测量模型的测量结果
get_metrology_object_result (MetrologyHandle, Index1, 'all', 'result_type', 'all_param', Circle)
*获取测量对象的结果轮廓,测量模型拟合出来的圆
get_metrology_object_result_contour (Contours, MetrologyHandle, Index1, 'all', 1.5)

*获取测量模型中测量对象的测量区域和边缘点位置的坐标
get_metrology_object_measures (Contour, MetrologyHandle, 'all', 'all', Row1, Column1)

* Matching 01: Clear model when done
*clear_shape_model (ModelId)
* Matching 01: END of generated code for model application


http://www.niftyadmin.cn/n/254487.html

相关文章

Cuckoo Filter

其他判重数据结构 Bloom Filter 无法支持删除和计数的功能,需要更多的存储空间来存储数据 因为在CS中,删除和计数是常见的操作,但是这会对布隆过滤器的存储空间产生影响,同样为了实现这一操作,需要更多的存储空间 数…

学校与教育-英文

标题 前言必学场景词汇及用法学校上课学习团体讨论考试情境常用单词学校设施教学人员学校学习考试学位前言 加油 必学场景词汇及用法 学校 1apply[əˈplaɪ]vi.申请apply for….申请……I applied for a scholarship while I was studying in the US.我在美国读书时申请…

【Python开发手册】JWT Token中添加过期时间和角色:简单易学的pyjwt

💖 作者简介:大家好,我是Zeeland,全栈领域优质创作者。📝 CSDN主页:Zeeland🔥📣 我的博客:Zeeland📚 Github主页: Undertone0809 (Zeeland) (github.com)&…

StringRedisTemplate-基本使用

StringRedisTemplate继承自RedisTemplate,在这里说明一下,当我们使用RedisTemplate往redis中存储java对象的时候,他会顺带着将该java对象的字节码文件也同时存进了内存中,这是为了实现自动反序列化Autowired private StringRedisTemplate red…

想着和GTP讨论关于人或AI的一些问题(答案很有意思)

我:我觉得人活着没啥意义 GPT:作为AI语言模型,我当然不能给你身为人类的绝对回答,但我可以提供一些哲学和心理学上的观点供你参考。 人类作为一种高智能的生物存在于地球上已经很久了,并对自然环境和社会文明做出了许…

Windows 服务监控工具

在任何企业中,Windows 服务都是面向业务的应用程序的核心组件。这些 Windows 服务的有效运行对于防止网络和应用程序停机至关重要。这使得 Windows 服务监视成为任何网络管理策略的关键部分。 Windows 服务监视使管理员能够确保关键 Windows 服务的可用性&#xff…

Three——二、加强对三维空间的认识

Three——二、加强对三维空间的认识 接上个例子我们接着往下看 辅助观察坐标系 THREE.AxesHelper()的参数表示坐标系坐标轴线段尺寸大小,你可以根据需要改变尺寸。 使用方法: // AxesHelper:辅助观察的坐标系 const axesHelper new THRE…

k8s混合部署 ? 多套集群统一管理?

master 和 node 操作系统和内核不一样 ? 在 Kubernetes 中,Master 和 Node 的操作系统和内核可以不同。Master 节点主要负责集群管理和控制,而 Node 节点主要负责容器的运行和管理。因此,Master 节点通常运行在 Linux 发行版中&a…