欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于深度圖像的物體測量方法與流程

文檔序號(hào):12464662閱讀:899來源:國知局
本發(fā)明涉及三維圖形學(xué)領(lǐng)域,尤其是涉及一種基于深度圖像的物體測量方法。
背景技術(shù)
:在三維圖形學(xué)中,深度映射是指一種圖像或者圖像通道,這種圖像包含著深度信息,而深度信息則是指從一個(gè)視角中獲得的物體表面的距離值,深度映射有很多的應(yīng)用。例如:模擬稠密的半透明媒介對(duì)物體的效應(yīng);模擬景深效應(yīng);陰影映射等。常見的深度攝像頭有微軟開發(fā)的Kinect和英特爾開發(fā)的RealSenseCamera。Kinect感應(yīng)器是一個(gè)外型類似網(wǎng)絡(luò)攝影機(jī)的裝置。Kinect有三個(gè)鏡頭,中間的鏡頭是RGB彩色攝影機(jī),左右兩邊鏡頭則分別為紅外線發(fā)射器和紅外線CMOS攝影機(jī)所構(gòu)成的3D結(jié)構(gòu)光深度感應(yīng)器。Kinect還搭配了追焦技術(shù),底座馬達(dá)會(huì)隨著對(duì)焦物體移動(dòng)跟著轉(zhuǎn)動(dòng)。Kinect也內(nèi)建陣列式麥克風(fēng),由多組麥克風(fēng)同時(shí)收音,比對(duì)后消除雜音。Kinect有一個(gè)官方sdk以及三個(gè)非官方驅(qū)動(dòng)。Kinect的應(yīng)用開發(fā)包括虛擬應(yīng)用、3D建模、機(jī)械控制等。而英特爾推出的首款集成了3D深度和2D鏡頭模塊的RealSense3D攝像頭,它能實(shí)現(xiàn)高度精確的手勢識(shí)別、面部特征識(shí)別,將幫助機(jī)器理解人的動(dòng)作和情感。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種測量準(zhǔn)確、可交互的基于深度圖像的物體測量方法。本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):一種基于深度圖像的物體測量方法,用以獲取被測物體的大小并展現(xiàn),包括以下步驟:1)獲取被測物體的深度圖像;2)根據(jù)深度圖像中所有像素點(diǎn)的數(shù)據(jù),獲取被測物體邊緣的坐標(biāo)數(shù)據(jù);3)將被測物體邊緣上像素點(diǎn)轉(zhuǎn)化為實(shí)際坐標(biāo);4)根據(jù)實(shí)際坐標(biāo)獲取被測物體實(shí)際的長度、寬度及實(shí)際物體邊框;5)在可交互界面中根據(jù)被測物體實(shí)際的長度、寬度與深度繪制該被測物體并顯示。所述的步驟2)具體包括以下步驟:21)根據(jù)深度圖像中所有像素點(diǎn)的數(shù)據(jù)采用遍歷算法獲取被測物體的最左、最右、最上和最下四個(gè)端點(diǎn)的圖像坐標(biāo);22)根據(jù)四個(gè)端點(diǎn)的圖像坐標(biāo)繪制邊緣矩形,并獲取被測物體的邊緣坐標(biāo)。所述的步驟5)具體包括以下步驟:51)將在被測物體的實(shí)際邊框范圍外的像素點(diǎn)用白色顯示;52)在實(shí)際邊框范圍內(nèi)的像素點(diǎn)根據(jù)采用灰度按照深度比例進(jìn)行填充并展示。所述的被測物體為規(guī)則物體,包括長方體、圓柱體和四面體。所述的步驟5)還包括以下步驟:采用與實(shí)際邊框范圍內(nèi)的像素點(diǎn)灰度和白色均不同的顏色顯示邊框。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):一、測量準(zhǔn)確:本發(fā)明通過深度圖像中的三維信息獲取被測物體的準(zhǔn)確位置和實(shí)際邊框,從而準(zhǔn)確的計(jì)算出物體的長度、寬度和深度。二、可交互:本發(fā)明通過在可交互界面上顯示深度圖像中的物體,更加生動(dòng),便于后續(xù)的渲染、動(dòng)態(tài)等圖像處理。附圖說明圖1為圖1是本創(chuàng)新工作方法的流程圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。實(shí)施例:如圖1所示,本方法的實(shí)現(xiàn)方式包括以下步驟:第一步、獲取深度圖像。首先創(chuàng)建realSense攝像頭的一個(gè)運(yùn)行實(shí)例:PXCProjection*p=device->CreateProjection();然后獲取深度圖片:PXCImage*image=depth;第二步、找出物體邊緣。通過遍歷算法找到找到物體最左、最右、最上、最下四個(gè)端點(diǎn)并根據(jù)這四個(gè)端點(diǎn)的坐標(biāo)畫出邊緣矩形。最下端點(diǎn):point=blobData->QueryExtremityPoint(PXCBlobData::EXTREMITY_BOTTOM_MOST);intpointImageX=(int)point.x;intpointImageY=(int)point.y;intbottomX=(int)point.x;intbottomY=(int)point.y;最上端點(diǎn):point=blobData->QueryExtremityPoint(PXCBlobData::EXTREMITY_TOP_MOST);pointImageX=(int)point.x;pointImageY=(int)point.y;inttopX=(int)point.x;inttopY=(int)point.y;最左端點(diǎn):point=blobData->QueryExtremityPoint(PXCBlobData::EXTREMITY_LEFT_MOST);pointImageX=(int)point.x;pointImageY=(int)point.y;intleftX=(int)point.x;intleftY=(int)point.y;最右端點(diǎn):point=blobData->QueryExtremityPoint(PXCBlobData::EXTREMITY_RIGHT_MOST);pointImageX=(int)point.x;pointImageY=(int)point.y;intrightX=(int)point.x;intrightY=(int)point.y;最近端點(diǎn):point=blobData->QueryExtremityPoint(PXCBlobData::EXTREMITY_CLOSEST);pointImageX=(int)point.x;pointImageY=(int)point.y;pointImageZ=(int)point.z;最遠(yuǎn)端點(diǎn):得到并畫出矩形邊緣:第三步、計(jì)算物體大小。首先將邊緣坐標(biāo)的像素值轉(zhuǎn)化為真實(shí)值,然后計(jì)算長度及大小。坐標(biāo)轉(zhuǎn)換:floatBX=vertices[bottomY*width+bottomX].x;floatBY=vertices[bottomY*width+bottomX].y;floatBZ=vertices[bottomY*width+bottomX].z;計(jì)算大?。篺out<<"size:"<<abs(LX-RX)<<'*'<<abs(TY-BY)<<endl;第四步、顯示深度圖像以及物體邊框。從攝像頭實(shí)例中獲得深度圖像,限制一定的深度范圍,將這個(gè)范圍中的像素點(diǎn)用白色顯示出來,其他部分不顯示,就獲得了我們需要的深度圖像。物體邊框在第二步中獲取時(shí)同時(shí)完成了顯示。第五步、顯示物體的長度、寬度、深度值。利用官方sdk中原來的用戶界面,將界面中顯示的內(nèi)容改成物體的長度、寬度、深度值。HWNDhwndValue=GetDlgItem(hwndDlg,IDC_BlobSmooth);EnableWindow(hwndValue,true);wchar_tline[256];swprintf_s(line,L"%.2f",length);SetWindowText(hwndValue,line);HWNDhwndValue1=GetDlgItem(hwndDlg,IDC_MaxBlobs);EnableWindow(hwndValue1,true);wchar_tline1[256];swprintf_s(line1,L"%.2f",wwidth);SetWindowText(hwndValue1,line1);HWNDhwndValue2=GetDlgItem(hwndDlg,IDC_MAX_DEPTH);EnableWindow(hwndValue2,true);wchar_tline2[256];swprintf_s(line2,L"%.2f",ddepth);SetWindowText(hwndValue2,line2);實(shí)施效果利用深度頭像測量一些不同形狀大小的物體,并與手工測量的標(biāo)準(zhǔn)值進(jìn)行比較。為了方便分析誤差,在實(shí)驗(yàn)中主要使用規(guī)則的物體,例如長方體、圓柱體等。測試結(jié)果如表1所示:表1規(guī)則物體的測試結(jié)果誤差分析對(duì)象測量值實(shí)際值誤差物體158.4*56.8*223.557*57*2241.01%物體257.1*223.6*58.257*224*570.82%物體3196.3*92.8*80.2195*92*810.84%物體4201.7*149.7*50.4202*148*521.46%物體5200.4*93.4*41.2195*90*412.34%物體693.0*93.6*178.390*90*1802.76%物體746.2*100.8*50.445*102*501.55%物體879.6*160.6*27.180*162*281.53%物體956.1*76.5*36.456*76*370.82%物體1053.4*29.8*86.653*28*862.63%物體11231.2*168.8*53.2230*170*540.90%物體12193.2*154.7*38.8190*150*382.31%從表格中可以看出,測試結(jié)果比較理想。準(zhǔn)確率達(dá)到了98.42%。同時(shí),手工測量的誤差也影響了誤差的計(jì)算。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
阿拉善左旗| 谷城县| 扶余县| 桐柏县| 长汀县| 河源市| 扶余县| 开封县| 肥西县| 剑川县| 南皮县| 泸州市| 天台县| 额济纳旗| 四川省| 石嘴山市| 清水河县| 台州市| 济阳县| 金昌市| 吉林市| 张家口市| 鄂托克前旗| 靖安县| 盈江县| 石城县| 扎赉特旗| 封开县| 巩义市| 湘阴县| 宁陵县| 无棣县| 扬中市| 忻城县| 庆阳市| 麟游县| 成武县| 凤冈县| 临西县| 商水县| 五大连池市|