From e2b2346f763f6231897d639203b74e72d5acb889 Mon Sep 17 00:00:00 2001 From: Fisch Date: Sat, 7 Oct 2023 00:26:50 +0200 Subject: [PATCH] change to individual hotspot definitions --- README.md | 26 +++++++++++--- Rasteroverlay.png | Bin 0 -> 106970 bytes Rasteroverlay.xcf | Bin 0 -> 824608 bytes input.txt | 5 ++- overlayLatLong.sh | 9 +++++ panoconfig.py | 77 +++++++++++++++++++++++++++--------------- template_hotspots.txt | 4 +-- 7 files changed, 84 insertions(+), 37 deletions(-) create mode 100644 Rasteroverlay.png create mode 100644 Rasteroverlay.xcf create mode 100644 overlayLatLong.sh diff --git a/README.md b/README.md index ac9b946..b8b59c2 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,33 @@ # panellum_generator -Configuration generator for Panellum Panorama Viewer. +Configuration generator for Panellum Panorama Viewer. https://pannellum.org/ ## Usage -python panoconfig.py input.txt -o index.htm +python panoconfig.py input.txt -o pannellum/index.htm put index.htm in panellum folder together with images inside images/ folder. ## input config file format -x,y,z,id,filename,angleoffset +FromFile,ToFile,Pitch,Yaw,TargetYaw|i -xyz have to be a consistent unit -angleoffset is positive if center of image is rotated ccw +## overlay Pitch and Yaw +run overlaylatLong.sh with .jpg files in same directory. +This will create an "overlay" directory with the fotos and a lat long overlay. +## Workflow +Add .jpg equirectengular 360 photos in a directory with overlayLatLong.sh . +Run overlayLatLong.sh +create a file (for example input.txt) +Add clickable hotspots in every line +Example: from kitchen.jpg to livingroom.jpg at pitch=0 and yaw=-30 (coordinats in from picture). +kitchen,livingroom,0,-30,i +(i for autocalculate yaw viewpoint in target photo) + +Every image in the "to" field has to exist at least once as "from". + +Download pannellum and put pannellum folder in directory next to the python file. +Run "python panoconfig.py input.txt -o pannellum/index.htm" to create index.htm with config in it. +Run python -m http.server in pannellum folder. +Navigate to http://localhost:8000 diff --git a/Rasteroverlay.png b/Rasteroverlay.png new file mode 100644 index 0000000000000000000000000000000000000000..f525ebe23e642678572bdd90c767c42683b0dbae GIT binary patch literal 106970 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 literal 0 HcmV?d00001 diff --git a/input.txt b/input.txt index 86544b6..d2a2656 100644 --- a/input.txt +++ b/input.txt @@ -1,3 +1,2 @@ -570,260,50,Outside,outside.jpg,10 -350,440,50,Inside,inside.jpg,270 -435,530,50,Room,room.jpg,-70 \ No newline at end of file +kitchen,livingroom,0,-30,i +livingroom,kitchen,0,165,i diff --git a/overlayLatLong.sh b/overlayLatLong.sh new file mode 100644 index 0000000..5db2ffd --- /dev/null +++ b/overlayLatLong.sh @@ -0,0 +1,9 @@ +#!/bin/bash +mkdir overlay + +for file in *.jpg +do + echo "$file" + convert "$file" Rasteroverlay.png -gravity Center -composite overlay/overlay_"$file" +done + diff --git a/panoconfig.py b/panoconfig.py index 7359b85..ace163e 100644 --- a/panoconfig.py +++ b/panoconfig.py @@ -1,9 +1,13 @@ import math import argparse +#old #input config file format: x,y,z,id,filename,angleoffset #angleoffset is 0 when center of 360 image points to the right, positive rotation means image center in pointing more CCW. value in degrees +#new: +#input config file format: FromFile,ToFile,Pitch,Yaw,TargetYaw|i,Text + parser = argparse.ArgumentParser( prog = 'File Edit Script', description = 'Read content of text file and write to file', @@ -40,57 +44,76 @@ with open(args.filename,'r') as rf: linesinput=rf.readlines() linesinput=[x.rstrip() for x in linesinput] #remove newline and whitespaces at end +linesmask=[True for x in linesinput] + output_scenes=[] first_sceneId=None for iline1,line1 in enumerate(linesinput): + if (linesmask[iline1]==False): + continue - x1,y1,z1,id1,filename1,angleoffset1=line1.split(',') - x1,y1,z1=(float(x1),float(y1),float(z1)) - angleoffset1=float(angleoffset1) - + print("Parsing: line1") + fromID,toID,pitch,yaw,targetYaw=line1.split(',') + + #if (targetYaw=='i'): + # targetYaw=0 + + #pitch,yaw,targetYaw=(int(pitch),int(yaw),int(targetYaw)) + if first_sceneId is None: - first_sceneId=id1 #take first entry as start scene + first_sceneId=fromID #take first entry as start scene # ### Set information for scene ### current_scene=template_scenes - current_scene=[x.replace('',id1) for x in current_scene] - current_scene=[x.replace('',id1) for x in current_scene] - current_scene=[x.replace('<filename>',filename1) for x in current_scene] + current_scene=[x.replace('<id>',fromID) for x in current_scene] + current_scene=[x.replace('<title>',fromID) for x in current_scene] + current_scene=[x.replace('<filename>',fromID+".jpg") for x in current_scene] output_hotspots=[] for iline2,line2 in enumerate(linesinput): - x2,y2,z2,id2,filename2,angleoffset2=line2.split(',') - x2,y2,z2=(float(x2),float(y2),float(z2)) - angleoffset2=float(angleoffset2) - + if (linesmask[iline2]==False): + continue + + fromID2,toID2,pitch2,yaw2,targetYaw2=line2.split(',') - if id1!=id2: + if fromID==fromID2: + linesmask[iline2]=False + print() - print("from "+str(x1)+", "+str(y1)+" : "+id1) - print("to "+str(x2)+", "+str(y2)+" : "+id2) - - print("dist="+str(distance(x1,y1,x2,y2))) - angle=math.degrees(math.atan2(y2-y1, x2-x1)) #in degrees - print("angle="+str(angle)+" offset1="+str(angleoffset1)+" offset2="+str(angleoffset2)) - angle+=angleoffset1 #correct hotspot position by rotation of scene image - print("angle final="+str(angle)) - pitch=-math.degrees(math.atan(z1/distance(x1,y1,x2,y2))) #from current looking to hotspot. 0deg=straight, 90deg=down - pitch=pitch/2 #manual correction - + if (targetYaw2=='i'): + targetYaw2=0 + for iline3,line3 in enumerate(linesinput): + fromID3,toID3,pitch3,yaw3,targetYaw3=line3.split(',') + if (toID2==fromID3 and fromID2==toID3): + targetYaw2=int(yaw3)-180 + if (targetYaw2<-180): + targetYaw2+=360 + print("Calculated Target Yaw="+str(targetYaw2)) + + pitch2,yaw2,targetYaw2=(int(pitch2),int(yaw2),int(targetYaw2)) + + + print("from "+str(fromID2)) + print("to "+str(toID2)) + + # ### Set information for target/hotspot ### current_hotspot=template_hotspots - current_hotspot=[x.replace('<id>',id2) for x in current_hotspot] - current_hotspot=[x.replace('<yaw>',str(angle)) for x in current_hotspot] - current_hotspot=[x.replace('<pitch>',str(pitch)) for x in current_hotspot] + current_hotspot=[x.replace('<id>',toID2) for x in current_hotspot] + current_hotspot=[x.replace('<yaw>',str(yaw2)) for x in current_hotspot] + current_hotspot=[x.replace('<pitch>',str(pitch2)) for x in current_hotspot] + current_hotspot=[x.replace('<targetyaw>',str(targetYaw2)) for x in current_hotspot] + output_hotspots.append(current_hotspot) + output_hotspots_string="" diff --git a/template_hotspots.txt b/template_hotspots.txt index 8a16c7e..b824fbf 100644 --- a/template_hotspots.txt +++ b/template_hotspots.txt @@ -4,6 +4,6 @@ "type": "scene", "text": "<id>", "sceneId": "<id>", - "targetYaw": 0, + "targetYaw": <targetyaw>, "targetPitch": 0 - } \ No newline at end of file + }