簡體   English   中英

ReprojectImageTo3D 圖像中的對應像素(立體視覺)

[英]ReprojectImageTo3D corresponding pixel in image (Stereo Vision)

我有一個視差圖。

根據視差圖,將鼠標懸停在“左圖”上會顯示:

圖像的Xy ,所以如果我將鼠標懸停在最左上角,它將顯示x:0, y:0

下一步是顯示特定像素的距離,為了讓我的生活更輕松,我將嘗試使用reprojectImageTo3D(disp, Q)

我從stereoRectify得到了Q

現在,在 python 中reprojectImageTo3D返回一個n by 3矩陣。

所以我可以看到,它是一行xyz坐標。 想知道,我怎么知道這些坐標對應於哪個像素?

這是我使用 numpy.savetxt 保存的 3D 點示例

http://pastebin.com/wwDCYwjA

順便說一句:我在 python 中做所有事情,但是在 Java 中做 GUI,我沒有時間在 python 中學習 GUI。

如果您正確計算視差圖,您應該得到 (n1,n2,1) 維數組,其中 n1,n2 - 軸的圖像像素數,1 - 通道數(單通道,包含對應像素之間的像素距離)從左右圖像)。 您應該通過輸入disp.shapedisp.shape 之后,您應該將視差圖的 ndarray 傳遞給reprojectImageTo3D函數並獲得 ndarray,它具有 (n1,n2,3) 形狀(第三維包含 3D 點的 X、Y、Z 坐標)。 您可以通過鍵入以下內容進行檢查:

threeDImage = reprojectImageTo3D(disp, Q)
print threeDImage.shape

最后,由於您根據左圖像制作了視差圖,因此在左圖像(或視差圖)上具有坐標 x,y 的每個像素對應於 ThreeDImage[x][y] 3D 點。 請記住, row:0, column:0 是矩陣的左上角元素,基於 opencv 處理圖像:

0/0---column--->
 |
 |
row
 |
 |
 v

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM