簡體   English   中英

如何使用探戈項目拍攝深度時拍攝高分辨率圖片

[英]How to take high-res picture while sensing depth using project tango

如何使用探戈項目拍照?

我讀了這個答案: 在Jacobi Google Tango API中使用onFrameAvailable()

適用於抓取幀,但是圖像質量不是很好。 是否有任何等效的takePicture?

注意,java API

        public void onFrameAvailable(int cameraId) {
            if (cameraId == TangoCameraIntrinsics.TANGO_CAMERA_COLOR) {
                mTangoCameraPreview.onFrameAvailable();
            }
        }

不提供RGB數據。 如果我使用android相機拍照,探戈將無法感知深度。 在那里,我將不得不使用TangoCameraPreview。

謝謝

您無需使用TangoCameraPreview即可獲取Java中的幀。 它實際上只是提供的一種便利課程,可幫助您在屏幕上獲取視頻。 它似乎完全通過Java來實現,並且可以調用com.google.atap.tangoservice.Tango (即不調用未發布的API)。 實際上,如果您在Tango SDK jar文件中查看,您會發現有人不小心包含了源文件的版本-它具有一些diff批注,雖然可能不是最新的,但是檢查它仍然具有啟發性。

我不想使用TangoCameraPreview ,而是自己調用Tango.connectTextureId()Tango.updateTexture()來將幀像素加載到OpenGL紋理中,然后可以使用它,但是我可以使用它。 這正是TangoCameraPreviewTangoCameraPreview執行的操作。

在純Java中捕獲幀的最佳方法是將紋理的確切大小(1280x720)繪制到屏幕外的緩沖區中,然后將其讀回。 這也具有將紋理從其具有的任何YUV格式轉換為RGB的副作用(這可能會或可能不會理想)。 在OpenGL ES中,您可以使用framebufferrenderbuffer進行此操作。

將framebuffer / renderbuffer內容添加到已經可以在屏幕上呈現的程序中並不需要很多代碼-與保存文件所需的數量相當-但是第一次完成時很難正確處理時間。 我創建了一個Android Studio 示例捕獲應用程序 ,該應用程序將探戈紋理作為PNG保存到圖片文件夾(當您點擊屏幕時),以防對任何人有幫助。

暫無
暫無

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

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