zed相機使用

2021-10-03 22:25:22 字數 2691 閱讀 5625

zed相機網上資料都是關於安裝的教程,後續的一些使用介紹的不是很多,

因為官方文件已經介紹的很詳細,這裡介紹一下自己的學習過程,以備查閱,如有錯誤,敬請指正。

這是官方文件,所有的資訊都是根據這兒得來的。

因為zed相機屬於uvc(usb video device class )裝置,所以可以用作雙目攝像頭直接用於計算機或者嵌入式平台,和普通的雙目攝像頭應該沒什麼區別。

但是如果要使用其sdk,就需要cuda環境。一開始不知道,打算用在台式電腦(intel hd graphics 4600整合顯示卡)上,後來發現需要nvidia。只好轉用我的t470(總算能幹點活了)。按照這個教程下來,基本沒問題。

以上的這些應用只能讓我們看到zed的一些功能。用來做開發,自然少不了sdk.花乙個小時把這個文件大概看一些。基本上就可以上手開發了。

docs/getting-started/

因為我要識別網球。很小,距離也很遠。一開始打算用點雲去做,濾波後提取滿足條件的聚類。但pcl庫沒接觸過。後來看到這篇文章

我在深度圖中也看不到飛行的網球,zed開發人員也不建議直接用從深度圖中去找。深度圖是立體矯正匹配後得到的。於是我直接從矯正後的影象中去找兩個球的對應點,得到視差。最後計算出三維座標值。

因為我需要的幀率比較高,而且在關鍵時刻需要穩定,但是得到的svo檔案開啟時(需要sdk),發現幀率一直在變化,而且某些幀率變得很低,不太清楚為什麼。一下是我錄製是的**。

import pyzed.sl as sl

# create a zedcamera object

zed = sl.camera(

)# create a initparameters object and set configuration parameters

init_params = sl.initparameters(

)init_params.camera_resolution = sl.resolution.resolution_hd720 #解析度設定

init_params.camera_fps =

60#幀率設定

err = zed.

open

(init_params)

if err != sl.error_code.success:

exit(1)

runtime_parameters = sl.runtimeparameters(

)runtime_parameters.sensing_mode = sl.sensing_mode.sensing_mode_standard # use standard sensing mode

# enable recording with the filename specified in argument

err = zed.enable_recording(

'video_frame_test.svo'

, sl.svo_compression_mode.svo_compression_mode_lossless)

image_zed = sl.mat(zed.get_resolution(

).width, zed.get_resolution(

).height, sl.mat_type.mat_type_8u_c4)

point_cloud = sl.mat(

)print

('svo is recording')n=

200pretimestamp=

0dif_time =

while n>0:

if zed.grab(runtime_parameters)

== sl.error_code.success :

# each new frame is added to the svo file

zed.record(

) zed.retrieve_image(image_zed, sl.view.view_left)

timestamp = zed.get_timestamp(sl.time_reference.time_reference_current)

# get the timestamp at the time the image was captured

diftimestamp = timestamp - pretimestamp#時間戳之差

pretimestamp = timestamp#上一幀時間戳

#n = n-1

print

(diftimestamp)

#儲存於乙個列表

#print(n)

# else:

# key =cv2.waitkey(1)

# print('jump.')

# disable recording

zed.disable_recording(

)zed.close(

)

這裡要實名表揚zed的技術支援。傳送了詢問郵件很快就得到了恢復。最終找到了問題所在。

因為我在thinkpad t470p上使用的該攝像頭。技術支援說可能是因為geforce 940mx不支援在最大幀率下工作。後來我進行了一些實驗。發現在720p下,設定為15幀和30幀基本上不會有掉幀。但在60幀時就比較嚴重。所以我猜想可能是因為這個問題。另外,在720p時,即使呼叫sdk也不能設定任意幀數,好像只有,15,30,60三個選項。

ZED相機的使用

下面簡要說明一下zed雙目相機的使用 首先zed的相機必須要nvidia顯示卡支援,沒有的同學可以洗洗睡了,或者你可以拿來當普通相機用。這裡以c vs2019 為例,官網給的是用cmakelists.txt生成的解決方案,我這裡就直接自己新增了,本質其實一樣。首先新建乙個專案,在屬性中新增附加包含目...

ZED相機 關於ZED openCV的介紹

前段時間利用zed相機捕獲點雲的步驟有些忘記了,簡單的做個文件方便以後檢視。首先檢視自己電腦是否是nvidia的顯示卡 先安裝cuda10 因為cuda只支援nividia的顯示卡,所以如果是其他顯示卡的話就用不了zed相機了 安裝opencv3.1 參考其他部落格opencv3.1的安裝,最好配合...

Jetson TX2 ZED相機開發環境搭建

1.jetson tx2 刷機 可以參考我的另外一篇部落格 2 購買這款攝像頭時附帶u盤裡面的sdk 3.安裝 chmod x zed sdk linux jtx2 jp3.2 v2.6.1.run zed sdk linux jtx2 jp3.2 v2.6.1.run4.例程測試 進入安裝檔案所在...