gpt4 book ai didi

python - 如何计算 USB 3.0 立体相机的深度信息?

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:12 25 4
gpt4 key购买 nike

我对使用立体相机计算视频/图像的深度很感兴趣。相机是 Leopard Imaging 的 USB 3.0 立体相机 https://www.leopardimaging.com/LI-USB30-V024STEREO.html .我正在使用 MAC OS X 顺便说一句。

他们的客户支持人员告诉我,这是一款“UVC”相机。当连接到苹果电脑时,它会显示绿色图像。

我的最终目标是使用 OpenCV 从两个镜头抓取左右帧,以便计算深度。我熟悉 OpenCV,但不熟悉使用立体相机。任何帮助将非常感激。到目前为止,我一直在 Python 3 中这样做:

import numpy as np
import cv2
import sys
from matplotlib import pyplot as plt

import pdb; pdb.set_trace()
print("Camera 1 capture", file=sys.stderr)
cap = cv2.VideoCapture(1)

print("Entering while", file=sys.stderr)
while(True):
_ = cap.grab()
retVal, frame = cap.retrieve()

#gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

cap.release()
cv2.destroyAllWindows()

这有效,但它只给我一张没有深度的绿色图片/图像。关于如何从相机获取左右帧的任何建议?

最佳答案

leopard imaging 的人给我发了一条线索,但我无法取得进展,因为我猜我的核心文件中缺少一些文件。但是,我认为这可能会对某人有所帮助。所以我将其发布为答案。该消息是由我通过邮件联系的一位豹纹成像人员发送的。事情是这样的......

我们有一位客户一年前在 Linux 操作系统上成功分离了两个视频。我试图联系他,看看他是否可以与我们分享源代码。不幸的是,他已经离开了原来的公司,但他仍然找到了一些笔记(下图)。希望对您有所帮助。

摄像头将来自两个传感器的图像合并为一个 16 位像素数据(高 8 位来自一个摄像头,低 8 位来自另一摄像头)。要在 linux opencv 中解决这个问题,应该跳过 opencv 的颜色转换:at

modules/videoio/src/cap_v4l.cpp static IplImage* icvRetrieveFrameCAM_V4L( CvCaptureCAM_V4L* capture, int)

case V4L2_PIX_FMT_YUYV:
#if 1
/*
skip color convert. Just copy image buffer to frame.imageData
*/
memcpy(capture->frame.imageData, capture->buffers[capture->bufferIndex].start, capture->buffers[capture->bufferIndex].length);
#else
yuyv_to_rgb24(capture->form.fmt.pix.width, capture->form.fmt.pix.height,(unsigned char*) capture->buffers[capture->bufferIndex].start),
(unsigned char*)capture->frame.imageData);
#endif

希望这对您有所帮助。

免责声明:我继续使用 libuvc 中给出的 C++ 版本(我的项目使用 C++)使用提供的例程分别获取左右帧。

关于python - 如何计算 USB 3.0 立体相机的深度信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29135582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com