3D视觉(一):双目摄像头的调用

2024-04-28 18:32

本文主要是介绍3D视觉(一):双目摄像头的调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3D视觉(一):双目摄像头的调用

文章目录

  • 3D视觉(一):双目摄像头的调用
  • 1、计时器 chrono
  • 2、单目摄像头的调用
  • 3、双目摄像头的调用
  • 参考

1、计时器 chrono

chrono是C++11新加入的方便时间日期操作的标准库,它既是相应的头文件名称,也是std命名空间下的一个子命名空间,所有时间日期相关定义均在std::chrono命名空间下。

通过这个新的标准库,可以非常方便进行时间日期相关操作。

#include <iostream>
#include<unistd.h> 
#include <chrono>using namespace std;int main()
{chrono::steady_clock::time_point t1 = chrono::steady_clock::now();//   cout << "begin"<< endl;
//   sleep(2);
//   cout << "end"<< endl;long int x = 0;for(int i=0; i<1000000000; i++){x = x + i;}cout << x << endl;chrono::steady_clock::time_point t2 = chrono::steady_clock::now();chrono::duration<double> time_used = chrono::duration_cast<chrono::duration<double>>(t2 - t1);cout << "耗时: " << time_used.count() << " 秒. " << endl;return 0;
}

2、单目摄像头的调用

#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;int main()
{VideoCapture capture(0);while (true){Mat frame;capture >> frame;imshow("read stream !", frame);int c = waitKey(30);//exit the loop if user press "Esc" key  (ASCII value of "Esc" is 27)if(27 == char(c)) break;}return 0;
}

3、双目摄像头的调用

调用双目摄像头时遇到一个小问题,编译器报错带宽不够。查询原因后发现,原图分辨率为 480*640 大小,在调用单目时不会出现问题,但对于双目同时调用,USB接口带宽不够,摄像头获取失败。

此时需要手动调小摄像头分辨率,此处我调整成了 240*320 大小,即可成功调用。

#include <opencv2/opencv.hpp>
#include<iostream>#define CV_CAP_PROP_FRAME_WIDTH  3
#define CV_CAP_PROP_FRAME_HEIGHT  4using namespace cv;
using namespace std;int main(){//initialize and allocate memory to load the video stream from cameraVideoCapture camera0(2);camera0.set(CV_CAP_PROP_FRAME_WIDTH, 320);camera0.set(CV_CAP_PROP_FRAME_HEIGHT,240);VideoCapture camera1(0);camera1.set(CV_CAP_PROP_FRAME_WIDTH,320);camera1.set(CV_CAP_PROP_FRAME_HEIGHT,240);if( !camera0.isOpened() ) return 1;if( !camera1.isOpened() ) return 1;while(true) {// grab and retrieve each frames of the video sequentiallyMat3b frame0;camera0 >> frame0;Mat3b frame1;camera1 >> frame1;Mat r0;Mat r1;resize(frame0, r0, Size(640, 480), 0, 0, INTER_LINEAR);resize(frame1, r1, Size(640, 480), 0, 0, INTER_LINEAR);imshow("Video00", frame0);imshow("Video11", frame1);imshow("Video0", r0);imshow("Video1", r1);// std::cout << frame1.rows() << std::endl;// wait for 40 millisecondsint c = waitKey(40);// exit the loop if user press "Esc" key  (ASCII value of "Esc" is 27)if(27 == char(c)) break;}return 0;}

参考

https://jingyan.baidu.com/article/9158e000392cada25412281a.html
https://blog.csdn.net/qq_32900237/article/details/102392445

这篇关于3D视觉(一):双目摄像头的调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/943947

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

【LabVIEW学习篇 - 21】:DLL与API的调用

文章目录 DLL与API调用DLLAPIDLL的调用 DLL与API调用 LabVIEW虽然已经足够强大,但不同的语言在不同领域都有着自己的优势,为了强强联合,LabVIEW提供了强大的外部程序接口能力,包括DLL、CIN(C语言接口)、ActiveX、.NET、MATLAB等等。通过DLL可以使用户很方便地调用C、C++、C#、VB等编程语言写的程序以及windows自带的大

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

京东物流查询|开发者调用API接口实现

快递聚合查询的优势 1、高效整合多种快递信息。2、实时动态更新。3、自动化管理流程。 聚合国内外1500家快递公司的物流信息查询服务,使用API接口查询京东物流的便捷步骤,首先选择专业的数据平台的快递API接口:物流快递查询API接口-单号查询API - 探数数据 以下示例是参考的示例代码: import requestsurl = "http://api.tanshuapi.com/a

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建