|
Post by account_disabled on Jan 6, 2024 5:32:28 GMT
在现实应用程序中,我们可以使用 Unity、Unreal Engine 或 Blender 编写前端,以使其看起来非常漂亮。浏览器前端是最容易实现的,并且应该适用于几乎所有可能的配置。 为了简单起见,我们将应用程序分为三个较小的部分: 使用 OpenCV 的 Python 后端 OpenCV 将读取网络摄像头流,并在将摄像头图像传递给多个过滤器后打开多个窗口,以简化调试并让我们深入了解圆形检测算法实际看到的内容。这部分的输出只是检测到的圆的二维坐标和半径。 浏览器中使用 Three.js 的 JavaScript 前端 逐步实现.js 库,以渲染带有纹理的地球和围绕其旋转的月球。这里最有趣的事情是将 2D 屏幕坐标映射到 3D 世界。我们还将近似坐标和半径以提高 OpenCV 的准确性。 前端。 和后端中的 WebSockets 带有 服务器的后端将定期向浏览器客户端发送带有检测到的圆坐标和半径的消息。 最后结果 认识图像优化,Addy Osmani 的新实用指南,用于在网络上优化和提供高质量图像。一切尽在一本528 页的书中。 跳转至目录 ↬ 功能面板 1. 使用 的 Python 后端 我们的 Whatsapp 号码列表 第一步只是在 中导入 库并打开一个带有实时网络摄像头流的窗口。 我们将使用最新的 (请参阅安装说明)和 Python 2.7。请注意,在某些系统上安装可能会出现问题,并且官方文档也不是很有帮助。我尝试使用 版,但二进制文件存在依赖性问题,因此我不得不切换到Homebrew。另请注意,某些 OpenCV 包默认情况下可能不附带 Python 绑定(您需要使用一些命令行选项)。 使用 Homebrew 我运行:复制 默认情况下,这会。 安装带有 Python 绑定的 OpenCV。 为了测试一下,我建议您以交互模式运行 在 CLI 中运行,不带任何参数)并编写import cv2. 如果 OpenCV 安装正确并且 Python 绑定的路径正确,则不会引可以访问默认的索引相机0(通常是内置相机)。如果您想使用不同的数字,请尝试大于零的数字;然而,没有简单的方法来列出当前 OpenCV 版本的所有可用相机。 当我们cv2.imshow('Camera stream', image)第一次调用时,它会检查是否不存在具有该名称的窗口,并使用相机中的图像为我们创建一个新窗口。主循环的每次迭代都会重复使用相同的窗口。 然后我们常常capture.read()等待并抓取当前的相机图像。ret如果相机断开连接或由于某种原因下一帧不可用,此方法还会返回布尔属性。 最后,我们cv2.waitKey(1)检。
|
|