Bij Streetview sta je zelf ook op de streetview foto. Door er een ander plaatje overheen te plakken maak je jezelf onzichtbaar.
Hiervoor gebruik ik mijn eigen tooltje nadirpatch (code is onderaan, maar deze kan op dit moment wat verouderd zijn). Deze plakt over de fotograaf een template met een kleurtje of een logo. Je kunt zelf de template kiezen en de kleur. Maar je kunt het tooltje het ook automatisch zelf laten doen. Zie de -h optie.
Foto’s naar de PC
Stap 1, verplaats alle streetview foto’s van de telefoon naar de Linux Computer, b.v. /temp/Brussel
Dit is het gemakkelijkst met Airdriod. Zoek op je telefoon je IP adres van de telefoon op (b.v. 10.0.0.151)
Start op de telefoon Airdroid op. Op de PC browse naar 10.0.0.151:8888 en accepteert op de telefoon de connectie.
Op de telefoon staan de 360 graden foto’s op /SD Card/Pictures/panoramas. Ga via Airdroid webinterface naar deze locatie.
Selecteer alle bestanden en selecteer Download. Er wordt nu een zip bestand gemaakt die je op de PC kunt opslaan.
Vervolgens ga je naar de PC en unzip je het zojuist gedownloade bestand. Kopieer tevens alle foto’s naar /Media/360/... zodat je de originelen altijd nog hebt.
Nadir Patch toepassen
Open een terminal en cd naar de map waar de bestanden staan. Het tool accepteert maar 1 bestand (via de -f optie). Een simpel for loopje doet het trucje:
arjan@arjanpc:~/temp/Brussel> for f in *.jpg > do > nadirpatch -f $f > done Processing PANO_20181126_165829_1.jpg ...Sucesfully finished Processing PANO_20181126_165850_2.jpg ...Sucesfully finished Processing PANO_20181126_165914_3.jpg ...Sucesfully finished Processing PANO_20181126_165939_4.jpg ...Sucesfully finished Processing PANO_20181126_170003_5.jpg ...Sucesfully finished Processing PANO_20181126_170025_6.jpg ...Sucesfully finished arjan@arjanpc:~/temp/Brussel>
De foto’s hebben nu allemaal een nadir patch. Controleer met Gimp of direct via de File Browser (Dolphin) of alle foto’s werkelijk geworden zijn wat je er van verwacht.
Het mooiste resultaat is de -a optie (voor automatisch). Deze maakt geen gebruik van logo’s of andere overlay, maar gebruikt de foto zelf om de nadir aan te passen.
arjan@arjanpc:~/temp/Brussel> for f in *.jpg > do > nadirpatch -a -f $f > done Processing PANO_20181126_165829_1.jpg ...Sucesfully finished Processing PANO_20181126_165850_2.jpg ...Sucesfully finished Processing PANO_20181126_165914_3.jpg ...Sucesfully finished Processing PANO_20181126_165939_4.jpg ...Sucesfully finished Processing PANO_20181126_170003_5.jpg ...Sucesfully finished Processing PANO_20181126_170025_6.jpg ...Sucesfully finished arjan@arjanpc:~/temp/Brussel>
Foto’s terug naar de Telefoon
Terug naar Airdroid en maak in /SD Card/Pictures een map aan (b.v. STACKpanoramas). Kopieer alle originele 360 graden foto’s naar deze nieuwe map. Er kan van alles fout gaan, dus een backupje is altijd makkelijk.
Ga terug naar /SD Card/Pictures/panoramas en verwijder alle foto’s. Selecteer nu Upload File. Navigeer naar de map op de PC waar de foto’s staan en selecteer ALLE foto’s die terug moeten gekopieerd worden naar de telefoon.
Ga nu naar de Streetview App op je telefoon, klik op het oranje icoontje en importeer 360 graden foto’s (gele icoon). Selecteer nu alle foto’s die gepubliceerd moeten worden en klik op open.
Mogelijk kun je nu nog een Google Locatie toevoegen, doe dit.Sluit de App!
Gooi nu via Airdroid alle foto’s weg die je niet wilt publiceren in de panoramas map en start de App opnieuw op.
Zet alle foto’s op de juiste plek, en publiceer alle foto’s.
Nadat de foto’s zijn gepubliceerd verbind je alle foto’s met elkaar, of je wacht 24 uur zodat Google ze voor je aan elkaar plakt (of daar een poging toe doet). Als het werk van Google je niet bevalt kun je altijd nog met de hand alles aan elkaar gaan knopen.
nadirpatch.sh
Let op code kan wat verouderd zijn
#!/bin/bash # # Simpel script om de nadir van een 360 graden foto aan te passen tevens # kan gecontroleerd worden of de afbeelding corrupt is # # Auteur: Arjan ten Hoopen # Versie 1.0 25-06-2019 Initieele versie # # # Tools en libraries die nodig zijn. Deze worden door de makefile # tijdens make correct gevuld # LIB="/tenhoopen/lib/nadirpatch" MAGICK="/usr/bin/magick" COMPOSITE="composite -gravity center" IDENTIFY="/usr/bin/identify" CONVERT="/usr/bin/convert" # # Standaard waardes # NADIRTYPE=grijs NADIRSIZE=30 AUTOPATCH=false VERBOSE=false CHECKONLY=false TEMPTIFF=temp.tif NADIRPATCHTIFF=nadirpatch.tif # # Wat heb ik aan types en afmetingen. NADIRTYPE is de template die gebruikt # wordt om een lijst van afmetingen te genereren # NADIRLIBTYPES=$(ls ${LIB} | tr '\n' ' ') NADIRLIBSIZES=$(ls ${LIB}/${NADIRTYPE}| sed -e 's#.tif##g' |tr '\n' ' ') # # Help informatie # show_help () { echo "----------------------------------" echo "-v Spraakzame uitvoer" echo "-c Controleer afbeelding" echo "-h Dit bericht " echo "-t nadirtype, selecteer uit: ${NADIRLIBTYPES} Standaard is ${NADIRTYPE}" echo "-s nadirsize, selecteer uit: ${NADIRLIBSIZES} Standaard is ${NADIRSIZE} en dit blijkt in de praktijk meestal voldoende te zijn" echo "-a automatisch aanpassen van de nadir, overruled -t en -s" echo "-f 360 graden afbeelding waarvan de nadir aangepast moet worden" } # # Error informatie # show_error () { echo "Onbekende optie of onvolledige commando regel."; echo "Gebruik -h om uitleg te verkrijgen."; } # # Het afhandelen van alle opties op de commando regel # while getopts acvht:s:f: OPT do case ${OPT} in a) AUTOPATCH=true;; c) CHECKONLY=true;; v) VERBOSE=true COMPOSITE="${COMPOSITE} -verbose";; t) NADIRTYPE="${OPTARG}";; s) NADIRSIZE="${OPTARG}";; f) AFBEELDING360GRADEN="${OPTARG}";; h) show_help; exit 0;; \?) show_error; exit 2;; esac done # # Bestaat de 360 graden afbeelding? # if [ ! -f "${AFBEELDING360GRADEN}" ] ; then { echo "De 360 graden afbeelding ${AFBEELDING360GRADEN} bestaat niet." echo "Ik kan niet verdergaan ... probeer het nog een keer ... doej." exit 1 } fi if ! ${AUTOPATCH} ; then { # # Kennen we het nadir type dat opgegeven is # if [ ! -d "${LIB}/${NADIRTYPE}" ] ; then { echo "Onbekend nadir type opgegeven ${NADIRTYPE} Kies uit ${NADIRLIBTYPES}." echo "Ik kan niet verdergaan ... probeer het nog een keer ... doej." exit 1 } fi # # Hebben we de gewenste nadir afmeting # if [ ! -f "${LIB}/${NADIRTYPE}/${NADIRSIZE}.tif" ] ; then { echo "Onbekende nadir grote, kies uit ${NADIRLIBSIZES}." echo "Ik kan niet verdergaan ... probeer het nog een keer ... doej." exit 1 } fi # # Selecteer de nadir patch afbeelding # NADIRPATCH="${LIB}/${NADIRTYPE}/${NADIRSIZE}.tif" if ${VERBOSE} ; then echo NADIRPATCH="${NADIRPATCH}" fi } fi # # Is de afbeelding niet corrupt? # Dit is alleen bij check only, in alle ander omstandigheden nemen we aan dat de # afbeelding niet corrupt is # if ${CHECKONLY} ; then { ${IDENTIFY} -verbose "${AFBEELDING360GRADEN}" 2>/dev/null 1>/dev/null RC=$? if [ ${RC} -ne 0 ] ; then { echo "Corrupte afbeelding ${AFBEELDING360GRADEN}" echo " Voor meer info gebruik het commando ${IDENTIFY} -verbose ${AFBEELDING360GRADEN}" exit 3 } else { # Moesten we alleen maar controleren op corruptie, geef dan melding if ${CHECKONLY} ; then echo "Afbeelding ${AFBEELDING360GRADEN} is niet corrupt" fi } fi exit 0 } fi # # Maak een backup zodat we het orgineel niet verliezen # Wat we gaan doen is het orgineel hernoemen. Straks lezen we het hernoemde orgineel # en maken het nieuwe orgineel. # # Het enige dat dus met het echte orgineel gebeurt is dat het een andere naam krijgt. # AFBEELDING360GRADEN_BASE=$(echo "${AFBEELDING360GRADEN}" | cut -f1 -d.) AFBEELDING360GRADEN_EXT=$(echo "${AFBEELDING360GRADEN}" | cut -f2 -d.) BACKUPAFBEELDING360GRADEN="BACKUP${AFBEELDING360GRADEN_BASE}.${AFBEELDING360GRADEN_EXT}" if [ -f "${BACKUPAFBEELDING360GRADEN}" ] ; then { echo "Ik kan geen backup maken voor ${AFBEELDING360GRADEN} want ${BACKUPAFBEELDING360GRADEN} bestaat al" echo "Ik kan niet verdergaan ... probeer het nog een keer ... doej." exit 4 } else { mv "${AFBEELDING360GRADEN}" "${BACKUPAFBEELDING360GRADEN}" } fi echo "Patchen van ${AFBEELDING360GRADEN}" if ${AUTOPATCH} ; then { # orginele code: https://fabkzo.com/stretching-equirectangular-bottom-field-to-patch-nadir/ PWidth=$(${IDENTIFY} -format %w "${BACKUPAFBEELDING360GRADEN}") PHeight=$(${IDENTIFY} -format %h "${BACKUPAFBEELDING360GRADEN}") SMALLHIGHT=$(echo ${PHeight}/9.6) CROPHIGHT=$(echo ${PHeight}-${SMALLHIGHT} | bc) STRETCH=20 # # Dit is hogere school plaatjes aanpassen :) # ${CONVERT} "${BACKUPAFBEELDING360GRADEN}" -crop "${PWidth}"x"${CROPHIGHT}"+0+0 "${TEMPTIFF}" ${CONVERT} "${TEMPTIFF}" -crop "${PWidth}"x"${STRETCH}"+0+$(echo ${CROPHIGHT} - ${STRETCH} | bc) -resize ${PWidth}x$(echo ${PHeight}/9.6|bc)! -channel RGBA -blur 0x8 "${NADIRPATCHTIFF}" ${CONVERT} "${BACKUPAFBEELDING360GRADEN}" -page +0+"${CROPHIGHT}" "${NADIRPATCHTIFF}" -flatten "${AFBEELDING360GRADEN}" # We nemen maar aan dat alles goed gegaan is .... RC=0 rm -f "${TEMPTIFF}" "${NADIRPATCHTIFF}" } else { # # Plak de NADIRPATCH bovenop de AFBEELDING360GRADEN, gebruik hiervoor BACKUPAFBEELDING360GRADEN # en creeer een nieuwe AFBEELDING360GRADEN (nu met de nadir patch) # if ${VERBOSE} ; then echo "${MAGICK} ${COMPOSITE} ${NADIRPATCH} ${BACKUPAFBEELDING360GRADEN} ${AFBEELDING360GRADEN}" fi ${MAGICK} "${COMPOSITE}" "${NADIRPATCH}" "${BACKUPAFBEELDING360GRADEN}" "${AFBEELDING360GRADEN}" RC=$? } fi # # Alles verlopen zonder fouten? # if [ ${RC} -eq 0 ] ; then { # Alles ging zoals verwacht if ${VERBOSE} ; then { echo "${BACKUPAFBEELDING360GRADEN}" Info: convert "${BACKUPAFBEELDING360GRADEN}" -format "GPSLatitude =%[EXIF:GPSLatitude]\nGPSLongitude=%[EXIF:GPSLongitude]\n" info: echo "${AFBEELDING360GRADEN}" Info: convert "${AFBEELDING360GRADEN}" -format "GPSLatitude =%[EXIF:GPSLatitude]\nGPSLongitude=%[EXIF:GPSLongitude]\n" info: } fi rm -f "${BACKUPAFBEELDING360GRADEN}" } else { # Chipsssss er is wat fout gegaan echo "Fout!" echo "Er is wat fout gegaan, een return code ${RC} ontvangen" echo "Ik ruim de troep op en zet de backp van ${AFBEELDING360GRADEN} terug zodat er uiteindelijk niets gebeurt is" rm -f "${AFBEELDING360GRADEN}" mv "${BACKUPAFBEELDING360GRADEN}" "${AFBEELDING360GRADEN}" exit 6 } fi exit 0