“IMX219 Camera”的版本间的差异
Yousimaier17(讨论 | 贡献) |
Yousimaier17(讨论 | 贡献) (→产品参数) |
||
第33行: | 第33行: | ||
*感光芯片: IMX219 | *感光芯片: IMX219 | ||
*CMOS尺寸:1/4英寸 | *CMOS尺寸:1/4英寸 | ||
− | |||
*视场角(FOV):77°/120°/160°/220° | *视场角(FOV):77°/120°/160°/220° | ||
− | |||
− | |||
− | Jetson | + | == 使用说明 == |
+ | === Jetson Nano === | ||
硬件连接 | 硬件连接 | ||
将摄像头排线,金属面朝向散热板插入Jetson Nano 开发套件上的摄像头接口 | 将摄像头排线,金属面朝向散热板插入Jetson Nano 开发套件上的摄像头接口 | ||
第70行: | 第68行: | ||
如果要用opencv库调用摄像头,可以参考官方的jetcam程序。官方Jetcam例程 | 如果要用opencv库调用摄像头,可以参考官方的jetcam程序。官方Jetcam例程 | ||
− | + | === 树莓派 === | |
− | + | 树莓派镜像在Bullseye版本之后,底层的树莓派驱动由Raspicam切换成libcamera。libcamera是一个开源的软件栈,方便于第三方移植和开发自己的摄像头驱动。截止到2021-12-20, libcamra还是存有很多bug,并且当前的libcamera不支持python。 | |
− | + | '''此IMX219摄像头模块目前仅支持Bullseye系统,使用libcamera命令调用''' | |
+ | |||
+ | ==== libcamera-hello ==== | ||
+ | *这个是一个简单的“hello word" 程序,用来预览摄像头并将摄像头画面显示在屏幕上。 | ||
+ | *终端执行以下语句即可实时预览摄像头: | ||
+ | <pre> | ||
+ | libcamera-hello -t 0 | ||
+ | </pre> | ||
+ | :其中 -t 0 表示一直预览至终止程序,用户可根据自己的需要进行调整。 | ||
+ | |||
+ | ==== libcamera-jpeg ==== | ||
+ | *这是一个简单的静态图片拍摄程序,不同于libcamera-still的复杂功能,libcamera-jpeg代码更简洁,并且有很多相同的功能来完成图片拍摄。 | ||
+ | *终端执行以下语句会显示一个5秒左右的预览串口,然后拍摄一张全像素的JPEG图像: | ||
+ | <pre> | ||
+ | libcamera-jpeg -o test.jpg | ||
+ | </pre> | ||
+ | :其中test.jpg表示文件名 | ||
+ | *用户可以通过-t 参数来设置预览时间,同时可以通过--width 和 --height来设置拍摄图像的分辨率。例如 | ||
+ | <pre> | ||
+ | libcamera-jpeg -o test.jpg -t 2000 --width 640 --height 480 | ||
+ | </pre> | ||
+ | *所有的libcamera指令都允许用户自己设置快门时间和增益,比如: | ||
+ | <pre> | ||
+ | libcamera-jpeg -o test.jpg -t 2000 --shutter 20000 --gain 1.5 | ||
+ | </pre> | ||
+ | :其中 --shutter 20000 表示曝光 20ms, --gain 1.5 表示摄像头增益被设置为1.5倍。 | ||
+ | |||
+ | ==== libcamera-still ==== | ||
+ | *libcamera-still和libcamera-jpeg非常相似,不同的是libcamera继承了更多raspistill的功能。 | ||
+ | *终端执行以下语句即可拍照: | ||
+ | <pre> | ||
+ | libcamera-still -o test.jpg | ||
+ | </pre> | ||
+ | :其中test.jpg表示文件名 | ||
+ | *libcamea-still支持不同格式的图像文件,可以支持png和bmp编码,也支持直接不带编码或者任何图像格式地将RGB或者YUV像素的二进制转储保存成文件。如果是直接保存RGB或者YUV数据,程序在读取此类文件的时候必须了解文件的像素排列方式。 | ||
+ | <pre> | ||
+ | libcamera-still -e png -o test.png | ||
+ | libcamera-still -e bmp -o test.bmp | ||
+ | libcamera-still -e rgb -o test.data | ||
+ | libcamera-still -e yuv420 -o test.data | ||
+ | </pre> | ||
+ | :图像保存的格式是通过-e参数控制的, 如果没有调用-e参数设置的话,默认按照输出的文件名的格式保存。 | ||
+ | |||
+ | ==== libcamera-vid ==== | ||
+ | *libcamera-vid是一个视频录制程序, 默认使用的是树莓派的硬件H.264编码器。这个程序运行之后会在屏幕上显示一个预览窗口,同时将比特流编码输出到指定文件。 | ||
+ | *终端执行以下语句即可录制视频: | ||
+ | <pre> | ||
+ | libcamera-vid -t 10000 -o test.h264 | ||
+ | </pre> | ||
+ | :其中-t 10000 表示录制10秒的视频,test.h264表示文件名 | ||
+ | :如果要查看视频可以用vlc来进行播放 | ||
+ | <pre> | ||
+ | vlc test.h264 | ||
+ | </pre> | ||
+ | |||
+ | ==== libcamera-raw ==== | ||
+ | *libcamera-raw类似于视频录制程序,不同的地方时,libcamera-raw录制的是直接传感器输出的Bayer格式的数据,也就是原始图像数据。libcamera-raw不会显示预览窗口。 | ||
+ | *终端执行以下语句即可录制一个2秒的原始数据片段: | ||
+ | <pre> | ||
+ | libcamera-raw -t 2000 -o test.raw | ||
+ | </pre> | ||
+ | :程序会在没有格式信息的情况下直接转储原始帧,程序会将像素格式和图像尺寸直接打印在终端,用户可以根据输出的数据查看像素数据.默认情况下,程序会将原始帧保存成一个文件,文件通常比较大,用户可以通过--segement参数将文件进行分割。 | ||
+ | <pre> | ||
+ | libcamera-raw -t 2000 --segment 1 -o test%05d.raw | ||
+ | </pre> | ||
== 使用说明 == | == 使用说明 == |
2022年7月6日 (三) 17:50的版本
| ||||||||||||||||||||||
| ||||||||||||||||||||||
|
目录
产品参数
- 像素:800万像素
- 感光芯片: IMX219
- CMOS尺寸:1/4英寸
- 视场角(FOV):77°/120°/160°/220°
使用说明
Jetson Nano
硬件连接 将摄像头排线,金属面朝向散热板插入Jetson Nano 开发套件上的摄像头接口 启动Jetson Nano 测试摄像头 打开终端(键盘按下Ctrl+ALT+T快捷键打开终端),输入以下指令测试摄像头 DISPLAY=:0.0 nvgstcapture-1.0 测试双摄像头 如果需要测试双摄像头,可以添加sensor-id=x 来选择摄像头。x可以为0 或者 1
- 测试video0
DISPLAY=:0.0 nvgstcapture-1.0 --sensor-id=0
- 测试video1
DISPLAY=:0.0 nvgstcapture-1.0 --sensor-id=1 如果摄像头拍摄效果偏红的话,可以按照以下步骤操作 1.下载camera-override.isp文件,解压到特定文件夹
wget http://www.waveshare.net/w/upload/e/eb/Camera_overrides.tar.gz tar zxvf Camera_overrides.tar.gz sudo cp camera_overrides.isp /var/nvidia/nvcam/settings/ 2.安装文件:
sudo chmod 664 /var/nvidia/nvcam/settings/camera_overrides.isp sudo chown root:root /var/nvidia/nvcam/settings/camera_overrides.isp 【注意】
- NV12的12是数字而不是字母
- 测试画面是输出到HDMI或者DP屏幕的,所以测试的时候要先连接屏幕到Jetson Nano
Opencv调用摄像头 如果要用opencv库调用摄像头,可以参考官方的jetcam程序。官方Jetcam例程
树莓派
树莓派镜像在Bullseye版本之后,底层的树莓派驱动由Raspicam切换成libcamera。libcamera是一个开源的软件栈,方便于第三方移植和开发自己的摄像头驱动。截止到2021-12-20, libcamra还是存有很多bug,并且当前的libcamera不支持python。 此IMX219摄像头模块目前仅支持Bullseye系统,使用libcamera命令调用
libcamera-hello
- 这个是一个简单的“hello word" 程序,用来预览摄像头并将摄像头画面显示在屏幕上。
- 终端执行以下语句即可实时预览摄像头:
libcamera-hello -t 0
- 其中 -t 0 表示一直预览至终止程序,用户可根据自己的需要进行调整。
libcamera-jpeg
- 这是一个简单的静态图片拍摄程序,不同于libcamera-still的复杂功能,libcamera-jpeg代码更简洁,并且有很多相同的功能来完成图片拍摄。
- 终端执行以下语句会显示一个5秒左右的预览串口,然后拍摄一张全像素的JPEG图像:
libcamera-jpeg -o test.jpg
- 其中test.jpg表示文件名
- 用户可以通过-t 参数来设置预览时间,同时可以通过--width 和 --height来设置拍摄图像的分辨率。例如
libcamera-jpeg -o test.jpg -t 2000 --width 640 --height 480
- 所有的libcamera指令都允许用户自己设置快门时间和增益,比如:
libcamera-jpeg -o test.jpg -t 2000 --shutter 20000 --gain 1.5
- 其中 --shutter 20000 表示曝光 20ms, --gain 1.5 表示摄像头增益被设置为1.5倍。
libcamera-still
- libcamera-still和libcamera-jpeg非常相似,不同的是libcamera继承了更多raspistill的功能。
- 终端执行以下语句即可拍照:
libcamera-still -o test.jpg
- 其中test.jpg表示文件名
- libcamea-still支持不同格式的图像文件,可以支持png和bmp编码,也支持直接不带编码或者任何图像格式地将RGB或者YUV像素的二进制转储保存成文件。如果是直接保存RGB或者YUV数据,程序在读取此类文件的时候必须了解文件的像素排列方式。
libcamera-still -e png -o test.png libcamera-still -e bmp -o test.bmp libcamera-still -e rgb -o test.data libcamera-still -e yuv420 -o test.data
- 图像保存的格式是通过-e参数控制的, 如果没有调用-e参数设置的话,默认按照输出的文件名的格式保存。
libcamera-vid
- libcamera-vid是一个视频录制程序, 默认使用的是树莓派的硬件H.264编码器。这个程序运行之后会在屏幕上显示一个预览窗口,同时将比特流编码输出到指定文件。
- 终端执行以下语句即可录制视频:
libcamera-vid -t 10000 -o test.h264
- 其中-t 10000 表示录制10秒的视频,test.h264表示文件名
- 如果要查看视频可以用vlc来进行播放
vlc test.h264
libcamera-raw
- libcamera-raw类似于视频录制程序,不同的地方时,libcamera-raw录制的是直接传感器输出的Bayer格式的数据,也就是原始图像数据。libcamera-raw不会显示预览窗口。
- 终端执行以下语句即可录制一个2秒的原始数据片段:
libcamera-raw -t 2000 -o test.raw
- 程序会在没有格式信息的情况下直接转储原始帧,程序会将像素格式和图像尺寸直接打印在终端,用户可以根据输出的数据查看像素数据.默认情况下,程序会将原始帧保存成一个文件,文件通常比较大,用户可以通过--segement参数将文件进行分割。
libcamera-raw -t 2000 --segment 1 -o test%05d.raw
使用说明
Bullseye系统
libcamera-hello
- 这个是一个简单的“hello word" 程序,用来预览摄像头并将摄像头画面显示在屏幕上。
- 终端执行以下语句即可实时预览摄像头:
libcamera-hello -t 0
- 其中 -t 0 表示一直预览至终止程序,用户可根据自己的需要进行调整。
libcamera-jpeg
- 这是一个简单的静态图片拍摄程序,不同于libcamera-still的复杂功能,libcamera-jpeg代码更简洁,并且有很多相同的功能来完成图片拍摄。
- 终端执行以下语句会显示一个5秒左右的预览串口,然后拍摄一张全像素的JPEG图像:
libcamera-jpeg -o test.jpg
- 其中test.jpg表示文件名
- 用户可以通过-t 参数来设置预览时间,同时可以通过--width 和 --height来设置拍摄图像的分辨率。例如
libcamera-jpeg -o test.jpg -t 2000 --width 640 --height 480
- 所有的libcamera指令都允许用户自己设置快门时间和增益,比如:
libcamera-jpeg -o test.jpg -t 2000 --shutter 20000 --gain 1.5
- 其中 --shutter 20000 表示曝光 20ms, --gain 1.5 表示摄像头增益被设置为1.5倍。
libcamera-still
- libcamera-still和libcamera-jpeg非常相似,不同的是libcamera继承了更多raspistill的功能。
- 终端执行以下语句即可拍照:
libcamera-still -o test.jpg
- 其中test.jpg表示文件名
- libcamea-still支持不同格式的图像文件,可以支持png和bmp编码,也支持直接不带编码或者任何图像格式地将RGB或者YUV像素的二进制转储保存成文件。如果是直接保存RGB或者YUV数据,程序在读取此类文件的时候必须了解文件的像素排列方式。
libcamera-still -e png -o test.png libcamera-still -e bmp -o test.bmp libcamera-still -e rgb -o test.data libcamera-still -e yuv420 -o test.data
- 图像保存的格式是通过-e参数控制的, 如果没有调用-e参数设置的话,默认按照输出的文件名的格式保存。
libcamera-vid
- libcamera-vid是一个视频录制程序, 默认使用的是树莓派的硬件H.264编码器。这个程序运行之后会在屏幕上显示一个预览窗口,同时将比特流编码输出到指定文件。
- 终端执行以下语句即可录制视频:
libcamera-vid -t 10000 -o test.h264
- 其中-t 10000 表示录制10秒的视频,test.h264表示文件名
- 如果要查看视频可以用vlc来进行播放
vlc test.h264
libcamera-raw
- libcamera-raw类似于视频录制程序,不同的地方时,libcamera-raw录制的是直接传感器输出的Bayer格式的数据,也就是原始图像数据。libcamera-raw不会显示预览窗口。
- 终端执行以下语句即可录制一个2秒的原始数据片段:
libcamera-raw -t 2000 -o test.raw
- 程序会在没有格式信息的情况下直接转储原始帧,程序会将像素格式和图像尺寸直接打印在终端,用户可以根据输出的数据查看像素数据.默认情况下,程序会将原始帧保存成一个文件,文件通常比较大,用户可以通过--segement参数将文件进行分割。
libcamera-raw -t 2000 --segment 1 -o test%05d.raw