opencv - 设置用于图像捕获和图像处理的场景
问题描述
我正在构建一个盒子,用户将在其中放置脚,然后测量脚的尺寸。
我的第一层目标是进行基本测量,我的目标是建立人脚的 3D 模型。
这是我第一次尝试和原型制作的一些图像。
脚背|高分辨率照片| CLIPARTO 脚内侧| 高分辨率照片| CLIPARTO 脚外| 脚的顶部
所以,我最大的优势是我对场景有很多控制权。
我想利用这个事实来进行设置,这样我就可以使用图片获得可靠的测量结果。
所以我的问题如下:1)设置场景的最佳方式是什么?现在我将使用蓝色背景、灯光和对比色袜子来创建一致的内部图像。是否有更“最佳”的对比可以使用?正如您在下面看到的,它运行良好。
2) 对我来说,获得可靠的像素到毫米测量值的简单方法是什么?我可以使用带图案的袜子(以增加特征密度),然后从每个视点使用两个摄像头,但最好尽量减少我需要的摄像头数量。
我将把问题留在那里,以免使这篇文章超载 - 但如果人们有任何其他提示,那将非常有帮助。谢谢!
解决方案
我对 1) 的方法基本上是“绿屏”或“蓝屏”。
这个想法是仔细照亮背景,这样就没有阴影了。然后,您可以应用颜色阈值,所有不是特定颜色的东西都是前景。到目前为止,在您的图像中,有相当多的阴影,可以通过仔细的照明消除。您将不得不试验其中有多少对您来说是个问题。
2)这有点难,但可能。您需要知道相机的位置和方向、镜头参数(例如 F/#)、传感器参数(像素间距/间距)。有了这些信息,您应该能够定位脚的极值并进行一些测量。这是如何工作的一般图表。您可以使用顶视图来定位脚的中线,以便了解它与侧面摄像头的距离。然后,您就拥有了解决像素到真实空间测量所需的所有信息。顶部摄像头很简单;因为一切都在一个平面上(假设相机已正确对齐和校正),您所要做的就是在地板上放一把尺子并拍一些照片。然后,您可以直接从图像测量像素到实空间的转换。
对于您的 3-d 建模问题,我想指出您实际上不必获得完整的点云。您可以只获得一个脚的模型并根据您所做的测量对其进行缩放以进行显示。无论如何,祝你的项目好运!
推荐阅读
- javascript - 循环遍历表以设置背景 css
- c++ - 在 tsan_libdispatch_mac.cc 期间使用 cmake 构建 LLVM 失败;“错误:...的类型冲突”
- python - Pip3 无法在 macOS 上安装 face_recognition
- python - 基于调用 python 的位置的不同结果
- ios - 为什么 `react-native run-ios` 会显示“没有捆绑 URL 存在”,直到我重置它?
- python - 多核处理 Python dosent 打印函数的输出
- node.js - 环回上的 Kurento Media Pipeline 覆盖图像不起作用
- apache-flink - 迁移到 Flink 1.10.0,现在我的工作失败并杀死了我的 TaskManager
- css - CSS 内容属性:从 TXT 文件加载文本
- chisel - 使用 ChiselTest 框架生成波形