硬件设计 之摄像头分类(IR摄像头、mono摄像头、RGB摄像头、RGB-D摄像头、鱼眼摄像头)

总结一下在机器人上常用的几种摄像头,最近在组装机器人时,傻傻分不清摄像头的种类。由于本人知识有限,以下资料都是在网上搜索而来,按照摄像头的分类整理一下,供大家参考:

1.IR摄像头:

IR=infrared=红外线
红外摄像头工作原理是红外灯发出红外线照射物体,红外线漫反射,被监控摄像头接收,形成视频图像。
在这里插入图片描述

2.mono摄像头:

黑白相机模组:提升暗光成像效果,具体原理是,由于黑白相机模组没有Bayer(拜尔滤色镜)滤光片,所以在暗光条件下,可以获得更多的进光量,进而保存了更多的图像细节。由于黑白相机的细节更丰富、信噪比更高等优势,以黑白图像作为基准和彩色图像进行融合后,图像的整体效果会有比较明显的提升(尤其是在暗光环境下)。
在这里插入图片描述

3.RGB摄像头:

RGB色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
在这里插入图片描述
在这里插入图片描述

4.RGB-D摄像头:

RGBD = RGB + Depth Map,包含左红外相机+红外点阵投射器+右红外相机+RGB相机。主流的深度相机分为:飞行时间法(ToF),结构光法、双目立体视觉法。
在3D计算机图形中,Depth Map(深度图)是包含与视点的场景对象的表面的距离有关的信息的图像或图像通道。其中,Depth Map 类似于灰度图像,只是它的每个像素值是传感器距离物体的实际距离。通常RGB图像和Depth图像是配准的,因而像素点之间具有一对一的对应关系。通过近红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集。
在这里插入图片描述

这种具备一定结构的光线,会因被摄物体的不同深度区域,而采集不同的图像相位信息,然后通过运算单元将这种结构的变化换算成深度信息,以此来获得三维结构。简单来说就是,通过光学手段获取被拍摄物体的三维结构,再将获取到的信息进行更深入的应用。基于左右红外相机的图像,采用三角测量法计算。由于某些场景中特征点较少,所以通过红外点阵投射器向场景中发射红外点阵图案(人眼看不到,红外相机可以拍摄到),增加特征点,提高成像效果。

在这里插入图片描述
在这里插入图片描述

5.鱼眼摄像头:

鱼眼摄像机是可以独立实现大范围无死角监控的全景摄像机,是一种焦距极短并且视角接近或等于180°的镜头,为使镜头达到最大的摄影视角,这种摄影镜头的前镜片直径且呈抛物状向镜头前部凸出,与鱼的眼睛颇为相似,“鱼眼镜头”因此而得名。鱼眼镜头属于超广角镜头中的一种特殊镜头,它的视角力求达到或超出人眼所能看到的范围。因此,鱼眼镜头与人们眼中的真实世界的景象存在很大的差别,因为我们在实际生活中看见的景物是有规则的固定形态,而通过鱼眼镜头产生的画面效果则超出了这一范畴。
鱼眼镜头的原理 众所周知,焦距越短,视角越大,因光学原理产生的变形也就越强烈。
在这里插入图片描述
以上资料主要是本人在PCB设计中和网络搜索整理而成
如有雷同或错误,希望各位大神留言指正,感谢!!!
在这里插入图片描述

  • 15
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将摄像头视频更改消息并发布,您需要完成以下步骤: 1. 首先,您需要使用ROS的摄像头驱动程序来捕获摄像头视频。您可以使用以下命令启动摄像头节点: ``` $ rosrun usb_cam usb_cam_node ``` 2. 接下来,您需要使用ROS的图像处理程序来对摄像头视频进行处理。例如,您可以使用以下命令来将视频转换为黑白图像: ``` $ rosrun image_proc image_proc ``` 3. 接下来,您需要创建一个ROS节点来发布处理后的摄像头视频消息。您可以使用以下代码创建一个ROS节点: ```python #!/usr/bin/env python import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge, CvBridgeError import cv2 class CameraPublisher: def __init__(self): self.image_pub = rospy.Publisher("camera/image", Image, queue_size=1) self.bridge = CvBridge() self.camera_sub = rospy.Subscriber("usb_cam/image_raw", Image, self.callback) def callback(self, data): try: cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8") except CvBridgeError as e: print(e) # 在这里添加您的图像处理代码 cv_image = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY) try: self.image_pub.publish(self.bridge.cv2_to_imgmsg(cv_image, "mono8")) except CvBridgeError as e: print(e) if __name__ == '__main__': rospy.init_node('camera_publisher', anonymous=True) camera_publisher = CameraPublisher() try: rospy.spin() except KeyboardInterrupt: print("Shutting down") ``` 4. 最后,您可以使用以下命令启动ROS节点: ``` $ rosrun your_package_name camera_publisher.py ``` 这将启动您的节点并开始发布处理后的摄像头视频消息。您可以使用ROS的图像查看器(如rqt_image_view)来查看发布的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘小同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值