相機--相機標定實操

教程

camera_calibration移動畫面示例

usb_cam使用介紹和下載

我使用的是USB相機,所以直接使用ros的usb_cam功能包驅動相機閉關獲取實時圖像,然后用ros的camera_calibration標定相機。

查詢攝像機的信息

v4l2-ctl -d 0 --all的作用

命令詳解:

  • v4l2-ctl:這是 V4L2 的命令行控制工具,屬于?v4l-utils?軟件包。
  • -d 0:指定設備節點?/dev/video0-d?表示 device,后面的數字是設備索引號,例如:
    • /dev/video0?對應索引 0,
    • /dev/video1?對應索引 1,依此類推。
  • --all:顯示該設備的所有可用信息,包括:
    • 設備驅動信息
    • 支持的視頻格式
    • 當前設置的視頻格式
    • 支持的幀率
    • 控制項(如亮度、對比度、飽和度等)
    • 流媒體狀態等

我的設備:

v4l2-ctl -d 0 --all
Driver Info:Driver name      : uvcvideoCard type        : SDYH-8P0P: SDYH-8P0PBus info         : usb-xhci-hcd.2.auto-1.1Driver version   : 6.1.83Capabilities     : 0x84a00001Video CaptureMetadata CaptureStreamingExtended Pix FormatDevice CapabilitiesDevice Caps      : 0x04200001Video CaptureStreamingExtended Pix Format
Media Driver Info:Driver name      : uvcvideoModel            : SDYH-8P0P: SDYH-8P0PSerial           : Bus info         : usb-xhci-hcd.2.auto-1.1Media version    : 6.1.83Hardware revision: 0x00000823 (2083)Driver version   : 6.1.83
Interface Info:ID               : 0x03000002Type             : V4L Video
Entity Info:ID               : 0x00000001 (1)Name             : SDYH-8P0P: SDYH-8P0PFunction         : V4L2 I/OFlags            : defaultPad 0x01000007   : 0: SinkLink 0x02000010: from remote pad 0x100000a of entity 'Extension 3' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Input 1: ok)
Format Video Capture:Width/Height      : 1920/1080Pixel Format      : 'MJPG' (Motion-JPEG)Field             : NoneBytes per Line    : 0Size Image        : 4147200Colorspace        : sRGBTransfer Function : Rec. 709YCbCr/HSV Encoding: ITU-R 601Quantization      : Default (maps to Full Range)Flags

?Driver Info(驅動信息)

Driver Info:Driver name      : uvcvideoCard type        : SDYH-8P0P: SDYH-8P0PBus info         : usb-xhci-hcd.2.auto-1.1Driver version   : 6.1.83Capabilities     : 0x84a00001Video CaptureMetadata CaptureStreamingExtended Pix FormatDevice CapabilitiesDevice Caps      : 0x04200001Video CaptureStreamingExtended Pix Format
  • Driver name:使用的內核驅動名稱,這里是?uvcvideo,表示這是一個支持 USB Video Class (UVC) 的設備。
  • Card type:設備型號,這里是攝像頭的名字:SDYH-8P0P
  • Bus info:設備連接的總線位置,這里是通過 USB 接口連接的。
  • Driver version:驅動程序版本號,這里是 Linux 內核版本 6.1.83。
  • Capabilities:設備能力位掩碼,表示該設備支持的功能:
    • Video Capture:可以捕獲視頻流。
    • Metadata Capture:支持元數據(如時間戳等)。
    • Streaming:支持流式傳輸。
    • Extended Pix Format:支持擴展像素格式。
    • Device Capabilities:支持查詢設備能力。
  • Device Caps:設備接口的能力,比?Capabilities?更細粒度,這里與上面類似。

?Media Driver Info(媒體驅動信息)

Media Driver Info:Driver name      : uvcvideoModel            : SDYH-8P0P: SDYH-8P0PSerial           : Bus info         : usb-xhci-hcd.2.auto-1.1Media version    : 6.1.83Hardware revision: 0x00000823 (2083)Driver version   : 6.1.83
  • Model:設備型號,同上。
  • Serial:序列號,這里為空,表示未提供。
  • Media version:媒體框架的版本號。
  • Hardware revision:硬件版本號(十六進制),可用于識別不同批次硬件。
  • Driver version:驅動版本號

?Interface Info(接口信息)

Interface Info:ID               : 0x03000002Type             : V4L Video
  • ID:接口唯一標識符。
  • Type:接口類型,這里是標準的 V4L2 視頻接口

?Entity Info(實體信息)

Entity Info:ID               : 0x00000001 (1)Name             : SDYH-8P0P: SDYH-8P0PFunction         : V4L2 I/OFlags            : defaultPad 0x01000007   : 0: SinkLink 0x02000010: from remote pad 0x100000a of entity 'Extension 3' (Video Pixel Formatter): Data, Enabled, Immutable
  • Entity:是 Media Framework 中的一個概念,代表一個功能模塊(比如傳感器、編碼器等)。
  • Function:這個實體的功能是作為 V4L2 輸入/輸出設備。
  • Pad:表示實體的輸入/輸出端口。Sink?表示這是輸入端口。
  • Link:表示與其他實體之間的連接關系,這里是來自另一個實體“Extension 3”的輸出端口的數據鏈路,且為啟用狀態。

Format Video Capture(當前視頻采集格式)

這是重點

Format Video Capture:Width/Height      : 1920/1080Pixel Format      : 'MJPG' (Motion-JPEG)Field             : NoneBytes per Line    : 0Size Image        : 4147200Colorspace        : sRGBTransfer Function : Rec. 709YCbCr/HSV Encoding: ITU-R 601Quantization      : Default (maps to Full Range)Flags
  • Width/Height:當前設置的圖像分辨率,這里是 1920×1080。
  • Pixel Format:當前像素格式為?'MJPG',即 Motion JPEG,這是一種壓縮格式,常用于攝像頭以減少帶寬需求。
  • Field:場模式,None?表示非隔行掃描(逐行掃描)。
  • Bytes per Line:每行字節數,對于 MJPG 格式通常為 0,因為它是壓縮格式。
  • Size Image:一幀圖像的大小(字節),這里是 1920×1080×(壓縮后平均約 2B) ≈ 4MB。
  • Colorspace:色彩空間,這里是?sRGB
  • Transfer Function:傳輸函數,這里是 Rec. 709(標準伽馬曲線)。
  • YCbCr Encoding:色度編碼方式,這里是 ITU-R BT.601(適用于標清視頻)。
  • Quantization:量化方式,Default (Full Range)?表示亮度值范圍為 0~255(而不是 16~235 的 TV 范圍)。
  • Flags:格式標志,目前為空。

查看相機支持的像素格式

v4l2-ctl -d 0 --list-formats

問題

swscaler @ 0xaaaaf438c7e0] No accelerated colorspace conversion found from yuv422p to rgb24.

硬件加速不可用:你的系統可能缺少必要的硬件加速支持或驅動程序,無法提供從 YUV 到 RGB 的快速轉換。

意味著 FFmpeg 在嘗試將 YUV422P 格式的圖像轉換為 RGB24 格式時,沒有找到任何硬件加速的方法來進行這個顏色空間轉換。因此,它只能使用軟件方式來完成這一任務,這通常會導致更高的 CPU 使用率,而且音頻話題發送頻率慢。

YUV 到 RGB 轉換的需求:當你使用 usb_cam 節點以原始像素格式(如 YUYV 或 YUV422P)讀取攝像頭數據時,ROS 需要將其轉換為更常用的 RGB 格式以便進一步處理。如果沒有硬件加速選項可用,這個轉換過程將由 CPU 執行。

FFmpeg:

這是一個命令行工具,用于格式轉換、裁剪、合并、縮放等操作。它可以將音頻和視頻數據從一種格式轉換為另一種,并且支持大量的編解碼器和文件格式。

本質上就是具有音頻存儲和發送格式轉換一套代碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82460.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82460.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82460.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Kotlin】高階函數Lambda內聯函數

【Kotlin】簡介&變量&類&接口 【Kotlin】數字&字符串&數組&集合 【Kotlin】高階函數&Lambda&內聯函數 【Kotlin】表達式&關鍵字 文章目錄 函數還是屬性高階函數抽象和高階函數實例: 函數作為參數的需求方法引用表達式更多使用場…

飛算JavaAI 炫技賽重磅回歸!用智能編碼攻克老項目重構難題

深夜還在排查十年前Hibernate框架埋下的N1查詢隱患?跨語言遷移時發現SpringMVC控制器里的業務邏輯像一團亂麻?當企業數字化進入深水區,百萬行代碼的老系統就像一座隨時可能崩塌的"技術債冰山"。近日,飛算科技發布JavaAI…

Linux I2C 子系統全解:結構、機制與工程實戰

Linux I2C 子系統全解:結構、機制與工程實戰 前言 I2C(Inter-Integrated Circuit)作為嵌入式系統和各種電子產品中最常用的串行通信總線之一,在 Linux 內核中的地位極其重要。然而,Linux I2C 子系統的分層結構、對象模…

多線程編程技術解析及示例:pthread_cond_timedwait、pthread_mutex_lock 和 pthread_mutex_trylock

多線程編程技術解析及示例:pthread_cond_timedwait、pthread_mutex_lock 和 pthread_mutex_trylock 摘要 本文深入解析了多線程編程中 pthread_cond_timedwait、pthread_mutex_lock 和 pthread_mutex_trylock 三個函數的功能、使用場景及注意事項,并通…

元胞自動機(Cellular Automata, CA)

一、什么是元胞自動機(Cellular Automata, CA) 元胞自動機(CA) 是一種基于離散時間、離散空間與規則驅動演化的動力系統,由 馮諾依曼(John von Neumann) 于1940年代首次提出,用于模…

Flutter面試題

Flutter架構解析 1. Flutter 是什么?它與其他移動開發框架有什么不同? Flutter 是 Google 開發的開源移動應用開發框架,可用于快速構建高性能、高保真的移動應用(iOS 和 Android),也支持 Web、桌面和嵌入式設備。。它與其他移動開發框架(如 React Native、Xamarin、原…

MySQL 如何判斷某個表中是否存在某個字段

在MySQL中,判斷某個表中是否存在某個字段,可以通過查詢系統數據庫 INFORMATION_SCHEMA.COLUMNS 實現。以下是詳細步驟和示例: 方法:使用 INFORMATION_SCHEMA.COLUMNS 通過查詢系統元數據表 COLUMNS,檢查目標字段是否存…

golang 實現基于redis的并行流量控制(計數鎖)

在業務開發中,有時需要對某個操作在整個集群中限制并發度,例如限制大模型對話的并行數。基于redis zset實現計數鎖,做個筆記。 關鍵詞:并行流量控制、計數鎖 package redisutilimport ("context""fmt""…

從線性方程組角度理解公式 s=n?r(3E?A)

從線性方程組角度理解公式 sn?r(3E?A) 這個公式本質上是 ?齊次線性方程組解空間維度 的直接體現。下面通過三個關鍵步驟解釋其在線性方程組中的含義: 1. ?公式對應的線性方程組 考慮矩陣方程: (3E?A)x0 其中: x 是 n 維未知向量3E?…

Docker 在 AI 開發中的實踐:GPU 支持與深度學習環境的容器化

人工智能(AI)和機器學習(ML),特別是深度學習,正以前所未有的速度發展。然而,AI 模型的開發和部署并非易事。開發者常常面臨復雜的依賴管理(如 Python 版本、TensorFlow/PyTorch 版本、CUDA、cuDNN)、異構硬件(CPU 和 GPU)支持以及環境復現困難等痛點。這些挑戰嚴重阻…

解決CSDN等網站訪問不了的問題

原文網址:解決CSDN等網站訪問不了的問題-CSDN博客 簡介 本文介紹解決CSDN等網站訪問不了的方法。 問題描述 CSDN訪問不了了,頁面是空的。 問題解決 方案1:修改DNS 可能是dns的問題,需要重新配置。 國內常用的dns是&#x…

使用tortoisegit連接遠程倉庫進行克隆、拉取、獲取、提交、推送、新建/切換分支、重命名、刪除的一套流程(附帶巨全面的git命令)

1.整備好tortoisegit工具。 2.新建一個文件夾,并進入這個文件夾后鼠標右擊(選擇克隆): 3.先去項目中拿到https地址,再填入: 4.新建分支,右擊克隆到本地的項目文件: 5.推送到遠程&am…

ArcGIS Pro 3.4 二次開發 - 地圖創作 1

環境:ArcGIS Pro SDK 3.4 + .NET 8 文章目錄 ArcGIS Pro 3.4 二次開發 - 地圖創作 11 樣式管理1.1 如何通過名稱獲取項目中的樣式1.2 如何創建新樣式1.3 如何向項目添加樣式1.4 如何從項目中移除樣式1.5 如何向樣式添加樣式項1.6 如何從樣式中移除樣式項1.7 如何判斷樣式是否可…

Express 集成Sequelize+Sqlite3 默認開啟WAL 進程間通信 Conf 打包成可執行 exe 文件

代碼:express-exe: 將Express開發的js打包成exe服務丟給客戶端使用 實現目標 Express 集成 Sequelize 操作 Sqlite3 數據庫; 啟動 Sqlite3 時默認開啟 WAL 模式,避免讀寫互鎖,支持并發讀; 利用 Conf 實現主進程與 Ex…

.Net Framework 4/C# 初識 C#

一、C# 專欄 由于博主原先是做的Linux C/C 嵌入式領域,因此對 C# 也較為懵懂,C# 是典型的 OOP 編程,這一點與 C 類似,但是在語法上,C# 移除了對指針的運用以及內存管理,所以既不用考慮指針的復雜運用也不用…

Python趣學篇:Pygame實現粒子煙花綻放效果

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 專欄介紹:《Python星球日記》?? 目錄 一、項目亮點與效果預覽1. 核心特色功能2. 技術學習價值二、技術原理深度解析1. 向量運算:煙花運動的數學基…

NiceGUI 是一個基于 Python 的現代 Web 應用框架

NiceGUI 是一個基于 Python 的現代 Web 應用框架,它允許開發者直接使用 Python 構建交互式 Web 界面,而無需編寫前端代碼。以下是 NiceGUI 的主要功能和特點: 核心功能 1.簡單易用的 UI 組件 提供按鈕、文本框、下拉菜單、滑塊、圖表等常見…

Linux中的mysql邏輯備份與恢復

一、安裝mysql社區服務 二、數據庫的介紹 三、備份類型和備份工具 一、安裝mysql社區服務 這是小編自己寫的,沒有安裝的去看看 Linux換源以及yum安裝nginx和mysql-CSDN博客 二、數據庫的介紹 2.1 數據庫的組成 數據庫是一堆物理文件的集合,主要包括…

鴻蒙UI開發——組件的自適應拉伸

1、概 述 針對常見的開發場景,ArkUI開發框架提供了非常多的自適應布局能力,這些布局可以獨立使用,也可多種布局疊加使用。本文針對ArkUI提供的拉伸能力做簡單討論。 拉伸能力是指容器組件尺寸發生變化時,增加或減小的空間全部分…

K 值選對,準確率翻倍:KNN 算法調參的黃金法則

目錄 一、背景介紹 二、KNN 算法原理 2.1 核心思想 2.2 距離度量方法 2.3 算法流程 2.4算法結構: 三、KNN 算法代碼實現 3.1 基于 Scikit-learn 的簡單實現 3.2 手動實現 KNN(自定義代碼) 四、K 值選擇與可視化分析 4.1 K 值對分類…