Ubuntu16.04 通过opencv的方式打开realsenseD435i相机中的彩色摄像头

本文主要是介绍Ubuntu16.04 通过opencv的方式打开realsenseD435i相机中的彩色摄像头,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此博客主要记录如何在不使用realsenseD435i相机自带的SDK情况下,仅通过opencv的方式打开相机的彩色摄像头

操作环境:Ubuntu16.04 64 位 python2.7 opencv3.3 ROS(kinetic)

import sys
import cv2
import rospy
from camera_info_manager import CameraInfoManager
from cv_bridge import CvBridge
from sensor_msgs.msg import Image, CameraInfodef publish_images(freq=100):cam_index = 2  # index of camera to capture### initialize ROS publishers etc.rospy.init_node('dope')camera_ns = rospy.get_param('camera', 'camera/color')img_topic = '{}/image_raw'.format(camera_ns)info_topic = '{}/camera_info'.format(camera_ns)image_pub = rospy.Publisher(img_topic, Image, queue_size=10)info_pub = rospy.Publisher(info_topic, CameraInfo, queue_size=10)info_manager = CameraInfoManager(cname='dope_{}'.format(cam_index),namespace=camera_ns)try:camera_info_url = rospy.get_param('~camera_info_url')if not info_manager.setURL(camera_info_url):rospy.logwarn('Camera info URL invalid: %s', camera_info_url)except KeyError:# we don't have a camera_info_url, so we'll keep the# default ('file://${ROS_HOME}/camera_info/${NAME}.yaml')passinfo_manager.loadCameraInfo()if not info_manager.isCalibrated():rospy.logwarn('Camera is not calibrated, please supply a valid camera_info_url parameter!')### open cameracap = cv2.VideoCapture(cam_index)if not cap.isOpened():rospy.logfatal("ERROR: Unable to open camera for capture.  Is camera plugged in?")sys.exit(1)rospy.loginfo("Publishing images from camera %s to topic '%s'...", cam_index, img_topic)rospy.loginfo("Ctrl-C to stop")### publish imagesrate = rospy.Rate(freq)while not rospy.is_shutdown():ret, frame = cap.read()if ret:image = CvBridge().cv2_to_imgmsg(frame, "bgr8")image.header.frame_id = 'camera_color_frame'image.header.stamp = rospy.Time.now()image_pub.publish(image)# we need to call getCameraInfo() every time in case it was updatedcamera_info = info_manager.getCameraInfo()camera_info.header = image.headerinfo_pub.publish(camera_info)rate.sleep()if __name__ == "__main__":try:publish_images()except rospy.ROSInterruptException:pass

 

这篇关于Ubuntu16.04 通过opencv的方式打开realsenseD435i相机中的彩色摄像头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Mybatis的分页实现方式

《Mybatis的分页实现方式》MyBatis的分页实现方式主要有以下几种,每种方式适用于不同的场景,且在性能、灵活性和代码侵入性上有所差异,对Mybatis的分页实现方式感兴趣的朋友一起看看吧... 目录​1. 原生 SQL 分页(物理分页)​​2. RowBounds 分页(逻辑分页)​​3. Page

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型