首页 > 其他分享 >一维卡尺边缘对

一维卡尺边缘对

时间:2024-09-02 10:46:59浏览次数:7  
标签:02 03 19 TmpCtrl 边缘 一维 Measure 卡尺 Column1

一、代码部分

* 一维卡尺 边缘对

read_image (Image, 'printer_chip/printer_chip_01')

*打开助手操作生成代码

* Measure 02: Code generated by Measure 02
* Measure 02: Prepare measurement
AmplitudeThreshold := 40
RoiWidthLen2 := 5
set_system ('int_zooming', 'true')
* Measure 02: Coordinates for line Measure 02 [0]
LineRowStart_Measure_02_0 := 147.099
LineColumnStart_Measure_02_0 := 497.926
LineRowEnd_Measure_02_0 := 145.627
LineColumnEnd_Measure_02_0 := 915.834
* Measure 02: Convert coordinates to rectangle2 type
TmpCtrl_Row := 0.5*(LineRowStart_Measure_02_0+LineRowEnd_Measure_02_0)
TmpCtrl_Column := 0.5*(LineColumnStart_Measure_02_0+LineColumnEnd_Measure_02_0)
TmpCtrl_Dr := LineRowStart_Measure_02_0-LineRowEnd_Measure_02_0
TmpCtrl_Dc := LineColumnEnd_Measure_02_0-LineColumnStart_Measure_02_0
TmpCtrl_Phi := atan2(TmpCtrl_Dr, TmpCtrl_Dc)
TmpCtrl_Len1 := 0.5*sqrt(TmpCtrl_Dr*TmpCtrl_Dr + TmpCtrl_Dc*TmpCtrl_Dc)
TmpCtrl_Len2 := RoiWidthLen2

* Measure 02: Create measure for line Measure 02 [0]
* Measure 02: Attention: This assumes all images have the same size!
gen_measure_rectangle2 (TmpCtrl_Row, TmpCtrl_Column, TmpCtrl_Phi, TmpCtrl_Len1, TmpCtrl_Len2, 1600, 1200, 'nearest_neighbor', MsrHandle_Measure_02_0)
* Measure 02: ***************************************************************
* Measure 02: * The code which follows is to be executed once / measurement *
* Measure 02: ***************************************************************
* Measure 02: The image is assumed to be made available in the
* Measure 02: variable last displayed in the graphics window
copy_obj (Image, Image, 1, 1)


*边缘对测量
*边缘对,两点成对,一对必有第一个点和第二个点,必须先理解这个概念。
* 输出结果 Row1 第一行 (边缘对第一个点row)
* 输出结果 Column1 第一列(边缘对第一个点column)
* 输出结果 Row2 第二行(边边缘对第第二个点row)
* 输出结果 Column2 第二列(边缘对第二个点column)
* 输出结果 Width 边缘对内部的距离
* 输出结果 Distance 边缘对之间的距离
measure_pairs (Image, MsrHandle_Measure_02_0, 1, AmplitudeThreshold, 'all', 'all', \
               Row1_Measure_02_0, Column1_Measure_02_0, Amplitude1_Measure_02_0, \
               Row2_Measure_02_0, Column2_Measure_02_0, Amplitude2_Measure_02_0, \
               Width_Measure_02_0, Distance_Measure_02_0)

*--生成代码结束

*显示第一个点
gen_cross_contour_xld (Cross, Row1_Measure_02_0[0], Column1_Measure_02_0[0], 36, 0.785398)

 

二、生成代码

1.打开助手,打开Measure窗口,绘制直线

 

2.勾选边缘对,生成代码

 

三、练习作业

计算第一排针脚的个数,标注第20针脚的位置

* 一维卡尺作业,计算针脚个数,标准第20个
read_image (Image, 'D:/hoclan/bianyuandui.png')

*打开助手,绘制Measure直线,插入代码
* Measure 03: Code generated by Measure 03
* Measure 03: Prepare measurement
AmplitudeThreshold := 40
RoiWidthLen2 := 5
set_system ('int_zooming', 'true')
* Measure 03: Coordinates for line Measure 03 [0]
LineRowStart_Measure_03_0 := 63.125
LineColumnStart_Measure_03_0 := 34.6127
LineRowEnd_Measure_03_0 := 63.125
LineColumnEnd_Measure_03_0 := 949.966
* Measure 03: Convert coordinates to rectangle2 type
TmpCtrl_Row := 0.5*(LineRowStart_Measure_03_0+LineRowEnd_Measure_03_0)
TmpCtrl_Column := 0.5*(LineColumnStart_Measure_03_0+LineColumnEnd_Measure_03_0)
TmpCtrl_Dr := LineRowStart_Measure_03_0-LineRowEnd_Measure_03_0
TmpCtrl_Dc := LineColumnEnd_Measure_03_0-LineColumnStart_Measure_03_0
TmpCtrl_Phi := atan2(TmpCtrl_Dr, TmpCtrl_Dc)
TmpCtrl_Len1 := 0.5*sqrt(TmpCtrl_Dr*TmpCtrl_Dr + TmpCtrl_Dc*TmpCtrl_Dc)
TmpCtrl_Len2 := RoiWidthLen2
* Measure 03: Create measure for line Measure 03 [0]
* Measure 03: Attention: This assumes all images have the same size!
gen_measure_rectangle2 (TmpCtrl_Row, TmpCtrl_Column, TmpCtrl_Phi, TmpCtrl_Len1, TmpCtrl_Len2, 988, 1018, 'nearest_neighbor', MsrHandle_Measure_03_0)
* Measure 03: ***************************************************************
* Measure 03: * The code which follows is to be executed once / measurement *
* Measure 03: ***************************************************************
* Measure 03: The image is assumed to be made available in the
* Measure 03: variable last displayed in the graphics window
copy_obj (Image, Image, 1, 1)
* Measure 03: Execute measurements
measure_pairs (Image, MsrHandle_Measure_03_0, 1, AmplitudeThreshold, 'all', 'all', Row1_Measure_03_0, Column1_Measure_03_0, Amplitude1_Measure_03_0, Row2_Measure_03_0, Column2_Measure_03_0, Amplitude2_Measure_03_0, Width_Measure_03_0, Distance_Measure_03_0)
* Measure 03: Do something with the results
*--插入代码结束

*计算第20个针脚的位置,并生成矩形2轮廓
gen_rectangle2_contour_xld (Rectangle, Row1_Measure_03_0[19]+Row2_Measure_03_0[19]-Row1_Measure_03_0[19], Column1_Measure_03_0[19]+Column2_Measure_03_0[19]-Column1_Measure_03_0[19], rad(90), 25, \
                            Column2_Measure_03_0[20]-Column1_Measure_03_0[20])

*显示信息
dev_disp_text ('这是第20个针脚,共有'+|Row1_Measure_03_0|+'个针脚', 'image', Row1_Measure_03_0[19]+Row2_Measure_03_0[19]-Row1_Measure_03_0[19], Column1_Measure_03_0[19]+Column2_Measure_03_0[19]-Column1_Measure_03_0[19], 'blue', [], [])

 

标签:02,03,19,TmpCtrl,边缘,一维,Measure,卡尺,Column1
From: https://www.cnblogs.com/zeussbook/p/18392318

相关文章

  • 解决方案 | 基于边缘智能控制器的变电所巡检系统
    前言供电系统作为轨道交通关键系统之一,承担着全线牵引系统和动力照明系统供电的首要任务,其运行安全性、可靠性直接关系到轨道交通的运营安全。传统模式下,为保证变电所的安全运行,巡视人员需每日对全线变电所设备进行巡视工作,确认设备运行状态及环境安全情况。但是,人工巡检存在巡检工......
  • 240723 边缘检测
    原图索贝尔拉普拉斯和canny#-*-coding:utf-8-*-importsysimportcv2importnumpyasnp#加载图片#转换灰度图input_file=sys.argv[1]img=cv2.imread(input_file,cv2.IMREAD_GRAYSCALE)h,w=img.shape#索贝尔边缘检测-水平sobel_horizontal=cv2.Sobe......
  • SZARP协助ARMxy边缘计算机实现智能工厂可视化解决方案
    在智能工厂的构建中,SZARP与ARMxy边缘计算机的协同作用,实现了设备的实时监控、深入的数据分析和有效的预测性维护,极大地提高了生产效率和产品质量。通过智能制造可视化技术,企业能够清晰地掌握生产流程的每一个环节,实现资源的最优分配和流程的最优化管理。一、SZARP简介SZARP集成了数......
  • 边缘计算网关:开启高速数据传输的新篇章
    一、引言随着物联网、大数据和人工智能技术的飞速发展,数据传输速度和效率成为制约系统性能的关键因素。我们自主生产的Mbox边缘计算网关,以其高速数据传输能力,为各类应用场景提供了强大的支持。本文将为您介绍边缘计算网关的高速数据传输原理及其在现实各行各业中的应用。二、边缘计......
  • 仅利用一维数组实现等值线图效果(附完整代码)
    当我们有三个一维数组x,y,i,其中i表示强度(或者其它),用颜色深浅表示。现在我们需要实现以下需求:使用一维数组x、y、i,其中i用于表示颜色深浅。在三维坐标系中,图像位于指定的z轴位置(如z=230)。生成的图像效果类似二维等值线图(ContourPlot)。 那么效果类似怎样的呢?如下图所示......
  • 卡尺找边
    Halcon-定位-卡尺目录以直线卡尺为例,其他卡尺更改相应参数即可。Code直线卡尺获取图像及图像尺寸dev_close_window()read_image(Image,'fabrik')get_image_size(Image,Width,Height)dev_open_window_fit_image(Image,0,0,-1,-1,WindowHandle)dev_set_......
  • 【NOI】C++数据结构入门之一维数组(三)元素移动
    文章目录前言一、概念1.导入2.元素移动2.1逆序2.2删除2.3插入二、例题讲解问题:1009-数组逆序问题:1162-数组元素的删除问题:1211-数组元素的插入问题:1161.元素插入有序数组问题:1159.数组元素的移动三、总结四、感谢前言在继续我们的C++数据结构学习之旅......
  • 云 VS 边缘计算,关系与区别是什么?
    云计算和边缘计算的区别是什么?云是一种IT环境,可以抽象、汇集和共享整个网络中的IT资源。边缘是网络边缘的计算位置,以及这些物理位置上的硬件和软件。是在云中运行工作负载,而边缘计算是在边缘设备上运行工作负载。边缘是云的一部分吗?某种程度上是。边缘设备可以是云的组......
  • 边缘发光效果
    前言时隔半年再来写shader发现好多东西都忘光了,最近刷短视频看见一个帅气的边缘发光效果,于是想自己也学着写一个,遂找博客学习。发现大佬用的是表面着色器的写法,于是狠狠的恶补了一波表面着色器表面着色器可以看成是顶点片元着色器的一种抽象。可以更加方便的编写shader,不用再繁......
  • 全新AI边缘计算盒子支持海康,大华灯摄像头对接
    网迅通的边缘计算盒子支持海康和大华等主流品牌摄像头的接入,确保了系统的高兼容性和用户操作的便利性。通过HTTP、WebSocket、ModbusTCP等多种协议对接,这款设备极大简化了数据交换的过程,使您能够快速集成现有的系统。​-----“恒网迅通”这是我们研发的一款AI主机摄像头,......