多视场同时运行

机器视觉大师运行以后,可以自动检测当前主机上已经连接的多个相机。多个相机同时运行需要更多的CPU和内存资源。除非必要,建议仅运行当前相机视场(默认设置也是如此)。遇到一些特殊检测需求时,当前主机硬件资源足够的情况下,用户可以进行多视场同时运行和检测。

 

多相机同时运行时,机器视觉大师进行检测运行时处理过程(见图一)如下:

1. 接收相机外部或手动触发信号;

2. 执行开始检测事件脚本;

3. 依次对所有相机抓取图像,应用检测算子进行检测;

4. 执行检测后事件脚本;

5. 将结果输出或显示。

  

图一:   多相机同时检测时运行流程

监视运行时,所有相机将被打开并按照各自的帧率速度采集图像。

下面是当前主机运行两个相机视场,同时进行双相机同时进行监视运行的详细操作过程。

1.   点击菜单“模式->设置”菜单,进入“选项”设置窗口。

 

2.  切换到窗口的的“常规”页,取消“单视场运行”复选框。如下图:

3.  点击“确认”按钮,关闭“选项”窗口。点击“窗口->水平平铺”菜单。 点击工具栏“监视运行”按钮。如下图:

当监视运行或检测运行以后,不管当前的视场窗口是否为当前窗口,都会采集并显示视场图像。

本文测试使用的AvizMaster版本为6.0.1228

最新版AvizMaster(机器视觉大师)下载地址:http://www.hdy.net.cn/softshare/ddcam.htm

技术交流QQ群: 295860595  技术支持QQ:  2437711859   微信:a18028535399



### 视场视场角的概念及计算方法 #### 1. 视场视场角的定义 视场(Field of View, FOV)是指光学仪器能够观察到的空间范围,通常以线性距离表示。例如,在特定的距离上,光学仪器可以捕捉到的物体宽度或高度。视场角(Field of View Angle)则是指以光学仪器镜头为顶点,被测目标物像可通过镜头的最大范围所形成的夹角[^1]。视场角越大,视野范围越广,但光学倍率会减小。 #### 2. 视场视场角的区别 视场是以实际物理尺寸描述的观测范围,而视场角是以角度描述的观测范围。两者的关系可以通过几何公式建立联系。具体来说,视场角决定了视场的大小,视场则依赖于视场观测距离。 #### 3. 视场视场角的计算公式 ##### (1)视场的计算公式 视场的大小可以通过以下公式计算: ```math h = f \cdot \tan(\theta / 2) \cdot 2 ``` 其中: - \( h \) 是视场的宽度或高度。 - \( f \) 是镜头的焦距。 - \( \theta \) 是视场角。 对于水平视场垂直视场,分别有以下公式: - 水平视场:\( h_{\text{水平}} = f \cdot \tan(\theta_h / 2) \cdot 2 \)[^1] - 垂直视场:\( h_{\text{垂直}} = f \cdot \tan(\theta_v / 2) \cdot 2 \)[^1] ##### (2)视场角的计算公式 视场角可以通过以下两种方法计算: ###### 方法一:基于被测物体的尺寸 如果已知被测物体的尺寸拍摄距离,则视场角可以计算如下: - 水平视场角:\( \theta_h = 2 \cdot \arctan(B / (2 \cdot l)) \)[^2] - 垂直视场角:\( \theta_v = 2 \cdot \arctan(A / (2 \cdot l)) \)[^2] 其中: - \( A \) \( B \) 分别是被测物体的高度宽度。 - \( l \) 是镜头到被测物体的距离。 ###### 方法二:基于摄像头规格 如果已知摄像头的焦距感光芯片(CCD靶面)的尺寸,则视场角可以计算如下: - 水平视场角:\( \theta_h = 2 \cdot \arctan(w / (2 \cdot f)) \)[^2] - 垂直视场角:\( \theta_v = 2 \cdot \arctan(h / (2 \cdot f)) \) - 对角视场角:\( \theta = 2 \cdot \arctan(\sqrt{w^2 + h^2} / (2 \cdot f)) \)[^2] 其中: - \( w \) \( h \) 分别是感光芯片的宽度高度。 - \( f \) 是镜头的焦距。 #### 4. 示例代码 以下是一个 Python 程序示例,用于根据摄像头规格计算视场角: ```python import math def calculate_field_of_view_angle(focal_length, sensor_width, sensor_height): # 计算水平视场角 horizontal_angle = 2 * math.atan(sensor_width / (2 * focal_length)) horizontal_angle_deg = math.degrees(horizontal_angle) # 计算垂直视场角 vertical_angle = 2 * math.atan(sensor_height / (2 * focal_length)) vertical_angle_deg = math.degrees(vertical_angle) # 计算对角视场角 diagonal_angle = 2 * math.atan(math.sqrt(sensor_width**2 + sensor_height**2) / (2 * focal_length)) diagonal_angle_deg = math.degrees(diagonal_angle) return horizontal_angle_deg, vertical_angle_deg, diagonal_angle_deg # 示例参数 focal_length = 4 # 镜头焦距,单位:mm sensor_width = 5.27 # 感光芯片宽度,单位:mm sensor_height = 3.96 # 感光芯片高度,单位:mm horizontal_angle, vertical_angle, diagonal_angle = calculate_field_of_view_angle(focal_length, sensor_width, sensor_height) print(f"水平视场角: {horizontal_angle:.2f}°") print(f"垂直视场角: {vertical_angle:.2f}°") print(f"对角视场角: {diagonal_angle:.2f}°") ``` 运行上述代码将输出对应的视场角值。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值