亚洲mv大片欧洲mv大片入口,国产粉嫩无码一区二区三区,国内精品自产拍在线观看91,久久久亚洲欧洲日产国码二区,中文字幕人妻久久一区二区三区

常州機(jī)器視覺(jué)培訓(xùn)

常州上位機(jī)軟件開(kāi)發(fā)

常州工業(yè)機(jī)器人編程設(shè)計(jì)培訓(xùn)

常州PLC培訓(xùn)

常州PLC

常州PLC編程培訓(xùn)

常州電工培訓(xùn)

常州和訊plc培訓(xùn)中心歡迎您!
當(dāng)前位置:網(wǎng)站首頁(yè) > 新聞中心 新聞中心
RGBD相機(jī)模型與圖片處理-常州機(jī)器視覺(jué)培訓(xùn),常州上位機(jī)培訓(xùn)
日期:2024-3-15 17:13:43人氣:  標(biāo)簽:常州機(jī)器視覺(jué)培訓(xùn) 常州上位機(jī)培訓(xùn)

圖像

1.png

灰度圖

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

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


深度圖

當(dāng)我們要記錄的信息更多時(shí),一個(gè)字節(jié)就不夠了。

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

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


彩色圖

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

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

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


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

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

Y = 0.299R + 0.578G + 0.114B


雙目相機(jī)通過(guò)視差來(lái)計(jì)算深度。RGBD相機(jī)則可以主動(dòng)測(cè)量每個(gè)像素的深度。


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


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


RGBD相機(jī)原理圖

1710383061.png

深度圖的保存


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

下面是一個(gè)簡(jiǎn)單的小程序,可以顯示像素的深度信息.


#include <iostream>

#include <fstream>

#include <opencv2/opencv.hpp>

using namespace std;


float depthscale = 1.0f/1000; //尺度因子,表示一個(gè)像素對(duì)應(yīng)多少實(shí)際中的米

int main(int argc, char **argv)

{

    cv::Mat  depth = cv::imread("img.jpg");

    depth.convertTo(depth,CV_32FC1,depthscale); //這個(gè)轉(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表示沒(méi)有測(cè)量到

            else

            {

                cout<<d<<"";

                if(v%50==0||u%50==0)

                    cout<<endl;

            }

            

        }

    }

    return 0;

}

ConvertTo()函數(shù)

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

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

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

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

而cvtColor()函數(shù)是負(fù)責(zé)轉(zhuǎn)換不同通道的Mat,因?yàn)樵摵瘮?shù)的第4個(gè)參數(shù)就可以設(shè)置目的Mat數(shù)據(jù)的通道數(shù)(只是我們一般沒(méi)有用到它,一般情況下這個(gè)函數(shù)是用來(lái)進(jìn)行色彩空間轉(zhuǎn)換的)。

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


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


dst:目的矩陣;


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


scale:比例因子;


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

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

本文網(wǎng)址:
下一篇:沒(méi)有資料

相關(guān)信息:
版權(quán)所有 CopyRight 2006-2017 江蘇和訊自動(dòng)化設(shè)備有限公司 常州自動(dòng)化培訓(xùn)中心 電話:0519-85602926 地址:常州市新北區(qū)府琛商務(wù)廣場(chǎng)2號(hào)樓1409室
蘇ICP備14016686號(hào)-2 技術(shù)支持:常州山水網(wǎng)絡(luò)
本站關(guān)鍵詞:常州PLC培訓(xùn) 常州PLC編程培訓(xùn) 常州PLC編程 常州PLC培訓(xùn)班 網(wǎng)站地圖 網(wǎng)站標(biāo)簽
在線與我們?nèi)〉寐?lián)系
亚洲mv大片欧洲mv大片入口,国产粉嫩无码一区二区三区,国内精品自产拍在线观看91,久久久亚洲欧洲日产国码二区,中文字幕人妻久久一区二区三区