2016-04-11 13 views
6

Próbuję uzyskać dane z widoku ulicy Google od dłuższego czasu. Do celów badawczych muszę być w stanie oszacować obszar nieba w konkretnej lokalizacji na mapie. Dlatego potrzebuję oszacowania sferycznego widoku i pomyślałem, że używanie Google Street View byłoby dobrym pomysłem. To, czego tak naprawdę potrzebuję, to kierunek 3D, który powinien być w stanie powiedzieć jaki jest kolor piksela w tym kierunku.Google Street View: Alternatywny sposób uzyskiwania danych z widoku ulicy

Oto, co wymyśliłem. Ja pobierania 6 zdjęć przy użyciu Google Street View Image API ich użyć jako tekstury Cube (szczególnie przesłać 6 zapytań z parametrami:

(heading, pitch) = {(0, 0), (90, 0), (180, 0), (270, 0), (0, 90), (0, -90)} 

Kiedy map tych 6 zdjęć do sześcianu, co mam jest następujące:

corner example

problemem jest to, że wydaje się, że jest jakiś błąd liczbowy i narożniki niedopasowanie. mam pomysł jak to naprawić ale złożoność rośnie dużo.

ja również spojrzał na JavaScriptu a PI, ale nie mógł znaleźć sposobu na dostęp do danych z tego miejsca. Nie ma wzmianki o mapowaniu UV na offcial Page

enter image description here

ale wydaje się to jest skierowane tylko do treści tworzone przez użytkowników.

Czy brakuje mi czegoś? Czy są jakieś alternatywne metody na zrobienie tego?

+0

Wystarczy tylko zaksięgowany jeden obraz ... możesz mi pokazać inne 5 zdjęć masz? –

+0

@SariAlalem jest błąd w sformułowaniu. przepraszam za to – svs

+0

Czy zamiast tego wypróbowałeś materiał wideo 360 °?Na youtube znajduje się cała masa sferycznych ram: https://www.youtube.com/channel/UCzuqhhs6NWbgTzMuM09WKDQ – PseudoAj

Odpowiedz

1

Zasadniczo chcesz zrobić to, co Google już robi, ale potrzebujesz reprezentacji 3D.

Stosując następującą metodę (i nie jest to łatwe), można uzyskać lepsze wyniki, ale nie jest to doskonałe. Podstawowa teoria brzmi następująco:

  1. Uzyskaj listę zdjęć (6 lub więcej, niektóre wykorzystują 8; 6 dla widoków poziomych i 2 dla górnych i dolnych).
  2. Połącz obrazy ze sobą za pomocą preferowanej metody, możesz znaleźć pomoc w łączeniu obrazów here.
  3. Po szwy skończy się z pojedynczego obrazu, to będzie Twój tekstury
  4. Narysuj kształt 3D (kula, sześciokąt lub cylinder)
  5. Zastosuj teksturę do kształtu 3D
  6. Przechowywać eksperymentuje z : a) Zdjęcia poniżej. b) Szwy. c) Mapowanie tekstury. aby uzyskać lepsze wyniki:

Jest to proces, który (prawdopodobnie) wykonuje Google, aby można było zobaczyć widok 360 w jego usłudze, i trzeba to zrobić, aby uzyskać reprezentację 3D w kodzie, ale nie będzie idealny, ponieważ obrazy, które otrzymujesz, nie są surowymi obrazami zrobionymi przez google (co utrudnia ich łączenie).

Readmore o to here i here

+0

Dziękuję za radę. Kiedy wspomniałem: "Mam pomysł, jak to naprawić", właśnie to miałem na myśli. Problem polega na tym, że eksperymentowałem z tą metodą przez jakiś czas i nie osiągam dobrych wyników. Szukałem prostszych podejść. Gdyby nie było innych odpowiedzi, wynagrodziłbym twój wysiłek. – svs

+0

Po chwili namysłu, jeśli chcesz tylko kolor piksela, nie musisz mapować go do kształtu 3D ... po prostu użyj ostatecznych piksele obrazu stiched –