【红外】采集数据

【orin】米文动力 orin 使用体验 以及实操(雷达;摄像头)_米文+orin-CSDN博客

红外型号是IR-Pilot 640 41Z1GC,通过gsml连orin

首先,这个miivii文件下缺东西,features/gmsl_camera/samples里就缺东西,缺了两个文件夹。

所以我去新机器拷了新的miivii,完整的。然后打包成miwen.tar.gz,然后解压编译的。


miwen是我建的文件夹,把miwen.tar.gz解压生成的miivii文件夹放到了miwen里

sudo make 报错看着是缺opencv

因为正常装了opencv是这样的

但是我这个目录下只有python,没有opencv相关。

之所以不用find命令,是因为机器里容器里也安装了opencv,太长了,很难排查。


然后我在home下用源码编译的opencv

## 编译opencv源码

解压opencv.zip得到opencv-4.2.0文件夹

解压opencv_contrib.zip得到opencv_contrib-4.2.0文件夹

将opencv_contrib-4.2.0移动到opencv-4.2.0文件夹内

```
cd opencv-4.2.0
mkdir build
cd build/

export http_proxy=http://127.0.0.1:7890/ # 在容器内设置代理

cmake \
-DCUDA_nppicom_LIBRARY=stdc++ \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENCV_ENABLE_NONFREE=1 \
-DBUILD_opencv_python2=1 \
-DBUILD_opencv_python3=1 \
-DWITH_FFMPEG=1 \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCUDA_ARCH_BIN=8.7 \
-DCUDA_ARCH_PTX=8.7 \
-DWITH_CUDA=1 \
-DENABLE_FAST_MATH=1 \
-DCUDA_FAST_MATH=1 \
-DWITH_CUBLAS=1 \
-DOPENCV_GENERATE_PKGCONFIG=1 \
-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.2.0/modules \
..


make -j4 # 四线程编译

sudo make install
```

源码编译opencv的时候出错

sudo apt-get install libboost-all-dev

之后编译成功,usr/local/lib下也出现opencv的库了


opencv编译后,接着编译gmsl

还是有报错

而Makefile里默认路径(老miivii文件夹)里只有两个so

去找新miivii发现有缺的这个so

所以我直接把opt下老miivii换成新的了

然后home下的miivii和opt下的miivii都sudo make 编译一下

没报错,看样子是过了

现在继续下一步,运行demo,报错了:缺一个so

先下一个locate工具

sudo apt-get install mlocate

sudo updatedb

还挺多,那就是没摸到,环境变量的原因了

export LD_LIBRARY_PATH=/home/nvidia/opencv/opencv/opencv-4.2.0/build/lib:/usr/local/lib:$LD_LIBRARY_PATH

再次测试

./cameras_opencv_demo -s 640x512 -d /dev/video0

成功!

注意

有段警告,缺东西,但可能无伤大雅,先跳过

nvidia@wk-orin:/opt/miivii/features/gmsl_camera/bin$ ./cameras_opencv_demo -s 640x512 -d /dev/video0
attestationVerify [13] succeed.
Opening camera...
[ WARN:0] global /home/nvidia/opencv/opencv/opencv-4.2.0/modules/videoio/src/cap_gstreamer.cpp (935) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
Gtk-Message: 20:23:56.141: Failed to load module "canberra-gtk-module"

接下来把环境变量永久写进去

永久设置 LD_LIBRARY_PATH

如果需要永久设置 LD_LIBRARY_PATH,可以在用户的 .bashrc.profile 文件中添加以下行:

export LD_LIBRARY_PATH=/home/nvidia/opencv/opencv/opencv-4.2.0/build/lib:/usr/local/lib:$LD_LIBRARY_PATH

source ~/.bashrc 使其生效

搞定!

接着我要录制 ros 话题的红外图像。

我现在已经成功输出了红外图像,如何查找红外摄像头的信息呢

ls -l /dev/video*


openCV 转 ros话题发布出去

cv_bridge/Tutorials/ConvertingBetweenROSImagesAndOpenCVImagesPython - ROS Wiki

sRGB和RGB有什么区别?

  1. RGB

    • RGB 是一种加色模型,代表红(Red)、绿(Green)和蓝(Blue)三种基本颜色。在显示技术中,通过调整这三种颜色的不同强度可以产生各种各样的颜色。RGB 模型主要用于电子设备上,比如电视、计算机显示器和智能手机屏幕。
  2. sRGB

    • sRGB 是一种具体的色彩空间标准,它定义了一组特定的颜色,这些颜色可以通过 RGB 加色模型来实现。sRGB 是一种较为狭窄但非常普遍的色彩空间,它被广泛应用于网页设计、摄影和打印等领域。sRGB 是由微软和惠普等公司在1990年代末期制定的一个标准,目的是创建一个可以跨多种设备(包括监视器、打印机和扫描仪)的一致色彩语言。

我是sRGB还是mono8?

    BGR8 (bgr8):用于彩色图像,每个像素有三个通道(蓝、绿、红),每个通道占用 8 位。
    
    RGB8 (rgb8):用于彩色图像,每个像素有三个通道(红、绿、蓝),每个通道占用 8 位。
    
    灰度图像 (mono8):用于单通道灰度图像,每个像素只有一个通道,占用 8 位。

选择合适的编码格式

    彩色图像:
        如果你的图像数据是 BGR 格式(OpenCV 默认格式),你应该使用 bgr8 编码。
        如果你的图像数据是 RGB 格式,你应该使用 rgb8 编码。

    灰度图像:
        如果你的图像数据是灰度图像,你应该使用 mono8 编码。

ros_frame.step这个是什么

ros_frame.step 是 sensor_msgs/Image 消息中的一个字段,表示图像每一行的字节数。它是一个非常重要的字段,因为它影响到图像数据的解析和传输。

ros_frame.step 的含义
定义:

ros_frame.step 表示图像每一行的字节数。
它通常等于图像的宽度乘以每个像素的字节数。
计算方法:

对于彩色图像(如 bgr8 或 rgb8),每个像素有 3 个通道(R、G、B),每个通道占用 1 字节。
因此,对于宽度为 width 的图像,step 计算公式为:
python
step = width * channels
示例
假设图像宽度为 1920 像素,每个像素有 3 个通道(BGR 或 RGB),则 step 计算如下:

python
width = 1920
channels = 3
step = width * channels
对于 1920x1080 的 BGR 图像:

python
ros_frame.step = 1920 * 3
为什么需要 step?
内存对齐:

在某些情况下,图像数据可能会有额外的填充字节,以保证内存对齐。这些填充字节不会被显示,但会影响每一行的总字节数。
step 包含了这些额外的填充字节,确保数据正确解析。
跨平台兼容性:

不同的操作系统或硬件可能有不同的内存对齐要求。step 确保数据在不同平台上都能正确解析。

相关推荐
WwangXue几秒前
mac如何下载 测试旧版chrome兼容问题
前端·chrome
浏览器爱好者几秒前
Chrome和Firefox如何保护用户的浏览数据
前端·chrome·firefox
Front思12 分钟前
根据输入的详细地址解析经纬度
前端·javascript
光影少年13 分钟前
前端文件上传组件流程的封装
前端·reactjs
纳尼亚awsl15 分钟前
css实现边框双色凹凸半圆
前端·css
前端郭德纲16 分钟前
一些CSS的基础知识点
前端·css
zqwang88817 分钟前
Performance API 实现前端资源监控
前端·javascript
HC1825808583220 分钟前
零基础学西班牙语,柯桥专业小语种培训泓畅学校
前端·javascript·vue.js
图扑软件20 分钟前
掌控物体运动艺术:图扑 Easing 函数实践应用
大数据·前端·javascript·人工智能·信息可视化·智慧城市·可视化
奶糖 肥晨1 小时前
React 组件生命周期与 Hooks 简明指南
前端·javascript·react.js