精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何從RGBD相機提取像素的深度信息

新機器視覺 ? 來源:博客園 ? 作者:曾是少年 ? 2022-03-21 13:37 ? 次閱讀

圖像

灰度圖

灰度是描述灰度圖像內(nèi)容的最直接的視覺特征。它指黑白圖像中點的顏色深度,范圍一般從0到255,白色為255,黑色為0,故黑白圖像也稱灰度圖像。灰度圖像矩陣元素的取值通常為[0,255],因此其數(shù)據(jù)類型一般為8位無符號整數(shù),這就是人們通常所說的256級灰度。

灰度圖:一個像素的灰度可以用8 位整數(shù)記錄,也就是一個0~255的值。

深度圖

當我們要記錄的信息更多時,一個字節(jié)就不夠了。

在RGB-D相機的深度圖中,記錄了各個像素與相機之間的距離。這個距離通常是以毫米為單位,而RGB-D 相機的量程通常在十幾米左右,超過了255。

人們會采用16 位整數(shù)(C++ 中的unsigned short)來記錄深度圖的信息,也就是位于0~65535 的值。換算成米的話,最大可以表示65 米,足夠RGB-D 相機使用了。

彩色圖

彩色圖像的表示則需要通道(channel)的概念。在計算機中,我們用紅色、綠色和藍色這三種顏色的組合來表達任意一種色彩。于是對于每一個像素,就要記錄其R、G、B 三個數(shù)值,每一個數(shù)值就稱為一個通道。例如,最常見的彩色圖像有三個通道,每個通道都由8 位整數(shù)表示。在這種規(guī)定下,一個像素占據(jù)24 位空間。

通道的數(shù)量、順序都是可以自由定義的。在OpenCV 的彩色圖像中,通道的默認順序是B、G、R。也就是說,當我們得到一個24 位的像素時,前8 位表示藍色數(shù)值,中間8 位為綠色,最后8 位

為紅色。同理,亦可使用R、G、B 的順序表示一個彩色圖。如果還想表達圖像的透明度,就使用R、G、B、A 四個通道。

RGB彩色圖與灰度圖之間的轉(zhuǎn)換

彩色圖像轉(zhuǎn)換為灰度圖像時,需要計算圖像中每個像素有效的亮度值,其計算公式為:

Y = 0.299R + 0.578G + 0.114B

雙目相機通過視差來計算深度。RGBD相機則可以主動測量每個像素的深度。

通過紅外結(jié)構(gòu)光(Structured Light)來測量像素距離的。例子有Kinect 1 代、Project Tango 1 代、Intel RealSense 等。

通過飛行時間法(Time-of-flight,ToF)原理測量像素距離的。例子有Kinect 2 代和一些現(xiàn)有的ToF 傳感器

RGBD相機原理圖

深度圖的保存

那么如何從RGBD相機提取像素的深度信息呢?

下面是一個簡單的小程序,可以顯示像素的深度信息.

#include 
#include 
#include 
using namespace std;

float depthscale = 1.0f/1000; //尺度因子,表示一個像素對應(yīng)多少實際中的米
int main(int argc, char **argv)
{
    cv::Mat  depth = cv::imread("img.jpg");
    depth.convertTo(depth,CV_32FC1,depthscale); //這個轉(zhuǎn)換很重要

    for (int v = 0; v < depth.rows; v++)
    {
        for (int u = 0; u < depth.cols; u++) {
            unsigned int d = depth.ptr<unsigned short>(v)[u]; // 深度值
            if (d == 0)
                continue; // 為0表示沒有測量到
            else
            {
                cout<"";
                if(v%50==0||u%50==0)
                    cout<<endl;
            }
            
        }
    }
    return 0;
}

ConvertTo()函數(shù)

需要注意,其中的ConvertTo函數(shù)作用如下:

img: 圖像數(shù)據(jù)來源,其類型為Mat。

注意: 不是所有格式的Mat型數(shù)據(jù)都能被使用保存為圖片,目前OpenCV主要只支持單通道和3通道的圖像,并且此時要求其深度為8bit和16bit無符號(即CV_16U),所以其他一些數(shù)據(jù)類型是不支持的,比如說float型等。如果Mat類型數(shù)據(jù)的深度和通道數(shù)不滿足上面的要求,則需要使用convertTo()函數(shù)和cvtColor()函數(shù)來進行轉(zhuǎn)換。

convertTo()函數(shù)負責轉(zhuǎn)換數(shù)據(jù)類型不同的Mat,即可以將類似float型的Mat轉(zhuǎn)換到imwrite()函數(shù)能夠接受的類型。

而cvtColor()函數(shù)是負責轉(zhuǎn)換不同通道的Mat,因為該函數(shù)的第4個參數(shù)就可以設(shè)置目的Mat數(shù)據(jù)的通道數(shù)(只是我們一般沒有用到它,一般情況下這個函數(shù)是用來進行色彩空間轉(zhuǎn)換的)。

另外也可以不用imwrite()函數(shù)來存圖片數(shù)據(jù),可以直接用通用的XML IO接口函數(shù)將數(shù)據(jù)存在XML或者YXML中。

具體含義,縮放并轉(zhuǎn)換到另外一種數(shù)據(jù)類型:

dst:目的矩陣;

type:需要的輸出矩陣類型,或者更明確的,是輸出矩陣的深度,如果是負值(常用-1)則輸出矩陣和輸入矩陣類型相同;

scale:比例因子;

shift:將輸入數(shù)組元素按比例縮放后添加的值;

dst(i)=src(i)xscale+(shift,shift,...)

原文標題:RGBD相機模型與圖片處理

文章出處:【微信公眾號:機器視覺智能檢測】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1083

    瀏覽量

    40417
  • 測量
    +關(guān)注

    關(guān)注

    10

    文章

    4768

    瀏覽量

    111132
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4306

    瀏覽量

    62430

原文標題:RGBD相機模型與圖片處理

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    手機相機像素原理

    原本是200百萬像素的手機出廠設(shè)置后成像只有30萬像素,我想問問手機相機像素原理?
    發(fā)表于 12-09 12:34

    40億像素相機拍出什么?

    關(guān)鍵詞:機器視覺、超大分辨率、高速相機、科天健 40億像素的數(shù)碼相機你見過嗎?美國航天局為科研而特別研制的相機就使用了40億像素的感光元件,
    發(fā)表于 06-01 13:53

    如何深度圖像中找到3或5個中心像素

    嗨,大家好,我試圖深度圖像中找到幾個中心像素。我正在嘗試實現(xiàn)分割,我需要找到分割對象的距離。這就是我的想法,這將是有效的。當彩色圖像用于分割時,全幀深度圖像將用于找到距離。在我的下面
    發(fā)表于 11-19 14:19

    一種不依賴于棋盤格等輔助標定物體實現(xiàn)像素相機和激光雷達自動標定的方法

    主要內(nèi)容本文提出了一種不依賴于棋盤格等輔助標定物體,實現(xiàn)像素相機和激光雷達自動標定的方法。方法直接點云中提取3D邊特征,一避免遮擋問題,并且使用了精確度更高的
    發(fā)表于 09-01 07:42

    如何以編程方式STL庫中提取版本信息

    我們正在將 STL 庫集成到需要 IEC 61508 安全完整性級別 2 (SIL2) 的項目環(huán)境中。我們?nèi)绾我跃幊谭绞?b class='flag-5'>從 STL 庫中提取版本信息?API 沒有顯示任何相關(guān)信息。另外
    發(fā)表于 12-30 08:18

    130萬像素CMOS數(shù)碼相機的設(shè)計

    130萬像素CMOS數(shù)碼相機的設(shè)計
    發(fā)表于 04-18 12:56 ?39次下載

    基于VB6.0的點陣字模信息提取方法

    摘要:提出通過顏色法提取像素點的漢字點陣字模信息提取方法,給出基于VB6.0的系統(tǒng)控件設(shè)置及流程實現(xiàn)方法。與基于內(nèi)碼法的漢字點陣提取方法的比較結(jié)果表明,該方法能夠方便
    發(fā)表于 07-16 11:20 ?67次下載

    數(shù)碼相機最大像素

    數(shù)碼相機最大像素 最大像素英文名稱為Maximum Pixels,所謂的最大像素是經(jīng)過插值
    發(fā)表于 12-18 14:26 ?492次閱讀

    數(shù)碼相機有效像素數(shù)

    數(shù)碼相機有效像素數(shù)              有效像素數(shù)英文名稱為Effective Pixels。與最大
    發(fā)表于 12-18 14:32 ?327次閱讀

    利用超像素分割的信息選取算法

    點互信息(PMI)邊界檢測算法能準確檢測圖像中的邊界,但算法效率受制于采樣點的提取。針對采樣過程中存在隨機性和信息冗余的問題,提出一種利用超像素分割提供的中層結(jié)構(gòu)
    發(fā)表于 12-14 17:11 ?0次下載

    像素時代里單反相機和無反相機格局會發(fā)生什么變化

    5060萬像素的佳能5DS上市了,4240萬像素的索尼A7R II也發(fā)布了,高像素的峰值在今年一下子又被拉得老高,而且無論是單反相機還是無反相機
    的頭像 發(fā)表于 10-24 11:23 ?4778次閱讀

    3D相機的類別及工作原理

    3D相機的不同之處在于,它可以測量普通數(shù)碼相機無法測量的深度數(shù)據(jù)。所謂深度數(shù)據(jù),就是像素相機
    的頭像 發(fā)表于 09-24 12:40 ?1.8w次閱讀

    一種融合深度網(wǎng)絡(luò)的改進快速生成超像素算法

    提取像素特征進行。提岀融合深度網(wǎng)絡(luò)的改進快速生成超像素算法,將深度學習網(wǎng)絡(luò)嵌入到超像素的生成過
    發(fā)表于 04-07 10:54 ?26次下載
    一種融合<b class='flag-5'>深度</b>網(wǎng)絡(luò)的改進快速生成超<b class='flag-5'>像素</b>算法

    基于全卷積神經(jīng)網(wǎng)絡(luò)的單像素邊緣提取算法

    為實現(xiàn)復(fù)雜背景圖像中髙精度邊緣的準確提取,提出一種改進的單像素邊緣提取算法。在改進的全卷積神經(jīng)網(wǎng)絡(luò)中,通過添加輔助輸出層與采取多尺度輸入的方式初步提取圖像多
    發(fā)表于 05-27 14:30 ?5次下載

    RGBD相機模型與圖片處理

    當我們要記錄的信息更多時,一個字節(jié)就不夠了。 在RGB-D相機深度圖中,記錄了各個像素相機之間的距離。這個距離通常是以毫米為單位,而RG
    的頭像 發(fā)表于 05-15 11:33 ?696次閱讀
    <b class='flag-5'>RGBD</b><b class='flag-5'>相機</b>模型與圖片處理