[PYTHON] Obtenez une image panoramique sur Google Street View

Ce que j'ai fait

Le travail effectué dans CAPTURING SPHERICAL SCENES FROM GOOGLE STREETVIEW est réalisé avec un script python. J'ai essayé de le faire.

Mise en garde

Veuillez lire attentivement la licence Google Street View avant d'utiliser ce script.

environnement

python 2.7.10

scénario

append.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import shutil
import re
import sys

class Panorama:

  def __init__(self, url):
    self.path = "./tmp/"
    self.panoid = self.parseID(url)

    #panorama size = 12*25
    self.x = 12
    self.y = 25

  def parseID(self,url):
    dna = "!1s"
    m = url.find(dna)
    if m != -1:
      return url[m+3:m+25]
    else:
      return ""

  def mkdirTmp(self):
    if os.path.exists(self.path):
      pass
    else:
      os.mkdir(self.path)

  def clean(self):
    shutil.rmtree(self.path)

  def downloadImage(self):
    cmd = 'curl http://cbk0.google.com/cbk?output=tile\&panoid=' + self.panoid + '\&zoom=5\&x=[0-25]\&y=[0-12] -o ' + self.path + '"tile_#1-#2.jpg "'
    os.system(cmd)

  def appendImage(self):

    #Connectez-vous sur le côté
    for x in range(0, self.x+1):
      cmd = "convert +append "
      for y in range(0, self.y+1):
        #Fichier d'entrée
        inFile = self.path + "tile_%d-%d.jpg "% (y,x)
        #Concaténer à la chaîne de commande
        cmd += inFile + " "

      #Définir le nom du fichier de sortie
      cmd += self.path + "%d.jpg "%x
      #print cmd

      #Courir
      os.system(cmd)

    #Connectez-vous verticalement
    cmd = "convert -append "
    for x in range(0,self.x):
      cmd += self.path + "%d.jpg "%x + " "

    cmd += "append.jpg "
    #print cmd

    os.system(cmd)


if __name__ == "__main__":
  url = "https://www.google.co.jp/maps/@34.7020532,135.5020237,3a,75y,285h,99t/data=!3m7!1e1!3m5!1sBLX3E8R5JxUJnuHlPGg5kw!2e0!6s%2F%2Fgeo3.ggpht.com%2Fcbk%3Fpanoid%3DBLX3E8R5JxUJnuHlPGg5kw%26output%3Dthumbnail%26cb_client%3Dmaps_sv.tactile.gps%26thumb%3D2%26w%3D203%26h%3D100%26yaw%3D285.21%26pitch%3D9.21!7i13312!8i6656?hl=ja&hl=ja"

  pano = Panorama(url)
  if  len(pano.panoid) > 0:
    pano.mkdirTmp()
    pano.downloadImage()
    pano.appendImage()
    pano.clean()

Recommended Posts

Obtenez une image panoramique sur Google Street View
Obtenez des images Google Recherche d'images dans leur taille d'origine
J'obtiens une KeyError dans pyclustering.xmeans
Obtenir un booléen avec une requête Flask
Afficher l'image après l'augmentation des données avec PyTorch
Implémenter un décorateur de vue personnalisé avec Pyramid
Obtenez les données de l'API Google Fit en Python
Comment obtenir stacktrace en python
Pour trouver le nom de la vue avec l'espace de noms à partir de l'URL (path_info) dans Django
Obtenez un jeton pour conoha avec python
[Python] Récupérez les fichiers dans le dossier avec Python
Quand j'obtiens une erreur de pilote chrome dans Selenium
Récupérer l'appelant d'une fonction en Python
Obtenir la liste des objets Google Cloud Storage en Java
Obtenir uniquement les éléments de sous-classe dans une liste
Afficher les avis sur les médicaments à l'aide de listes en Python
Touchons une partie de l'apprentissage automatique avec Python
Que faire pour obtenir une feuille de calcul Google en Python
Obtenir des lignes contenant des éléments spécifiques dans np.where
Obtenir le nom de fichier dans un dossier à l'aide de glob
Liste des endroits sur lesquels je suis tombé lors du téléchargement d'images à partir de Django
J'obtiens une exception java.util.regex.PatternSyntaxException lors du fractionnement d'une chaîne dans PySpark
Obtenez l'image de "Suzu Hirose" par recherche d'images Google.
Essayez de charger l'image dans un thread séparé (OpenCV-Python)
BigQuery - Si vous obtenez une erreur Reason: responseTooLarge en Python
Afficher un histogramme des valeurs de luminosité de l'image en python
Obtenez l'ID utilisateur et le nom d'écran du participant dans Slack