เนมสเปซของภาพพาโนรามาที่อธิบายในที่นี้ประกอบด้วยคุณสมบัติที่ระบุ ข้อมูลเกี่ยวกับการสร้างและแสดงภาพ Photo Sphere ซึ่งบางครั้งเรียกว่า พาโนรามา เช่น ที่สร้างขึ้นด้วยคุณลักษณะภาพ 360 องศาในกล้อง Android 4.2 ควรทำให้ข้อมูลเมตาเป็นแบบต่อเนื่องและฝังไว้ภายในภาพ 360 องศา ซึ่งอธิบายโดย Adobe XMP (ดูข้อมูลอ้างอิงที่ส่วนท้ายของหน้านี้)
URI ของเนมสเปซคือ http://ns.google.com/photos/1.0/panorama/
พร็อพเพอร์ตี้ของข้อมูลเมตา
แผนภาพและตารางด้านล่างแสดงคุณสมบัติของ Photo Sphere ตาม พารามิเตอร์ GPano เมื่อแก้ไขและดู Photo Sphere โปรดตรวจสอบว่าคุณได้ ตรวจสอบและอัปเดตข้อมูลเมตาให้สอดคล้องกันตามที่อธิบายภายหลังในเอกสารนี้ เมื่อระบุท่าทางและฟิลด์ส่วนหัวเริ่มต้น โปรดทำตาม แบบแผนของมุมออยเลอร์ที่พูดถึงในภายหลัง เอกสารนี้
โปรดทราบว่าผลิตภัณฑ์ของ Google สนับสนุนการฉายภาพแบบ 360 องศาเท่านั้น ขณะนี้มีเพียงบุคคลอื่นเท่านั้นที่สนับสนุนการคาดการณ์เพิ่มเติม
เส้นโครงแผนที่ทรงกลม
เส้นโครงแผนที่รูปทรงกระบอก
โปรดทราบว่าหากด้านบนของภาพทรงกระบอกอยู่เหนือเส้นขอบฟ้า CroppedAreaTopPixels ต้องเป็นค่าลบ ค่า 0 สำหรับ CroppedAreaTopPixels จะวางด้านบนของรูปภาพที่ขอบฟ้า ค่าบวกของ CroppedAreaTopPixels จะวางตำแหน่งด้านบนของรูปภาพใต้เส้นขอบฟ้า
การอ้างอิงพารามิเตอร์ GPano
ชื่อ | ประเภท | ต้องระบุ | ค่าเริ่มต้น (คาดคะเนจากผู้ชม) |
คำอธิบายที่พัก | ขอให้ดำเนินการหากมีการแก้ไขรูปภาพ |
---|---|---|---|---|---|
GPano:UsePanoramaViewer | บูลีน | ไม่ได้ | จริง | ต้องการแสดงรูปภาพนี้ในโปรแกรมดู Photo Sphere แทนการแสดงเป็นภาพ 2 มิติปกติหรือไม่ ซึ่งอาจระบุตามค่ากำหนดของผู้ใช้หรือซอฟต์แวร์การต่อภาพ แอปพลิเคชันที่แสดงหรือส่งผ่านข้อมูลรูปภาพอาจเลือกที่จะไม่สนใจข้อมูลนี้ | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง แอปพลิเคชันอาจตัดสินใจเปลี่ยนค่านี้เป็น "เท็จ" หากขอบเขตการมองเห็นต่ำกว่าค่าที่กำหนด |
GPano:CaptureSoftware | สตริง | ไม่ได้ | ไม่มี | หากทำการจับภาพโดยใช้แอปพลิเคชันบนอุปกรณ์เคลื่อนที่ เช่น โทรศัพท์ Android โปรดระบุชื่อแอปพลิเคชันที่ใช้ (เช่น "Photo Sphere") ควรปล่อยว่างไว้หากถ่ายภาพต้นฉบับด้วยตนเอง เช่น โดยใช้กล้อง DSLR บนขาตั้งกล้อง | ไม่มี |
GPano:StitchingSoftware | สตริง | ไม่ได้ | ไม่มี | ซอฟต์แวร์ที่ใช้สร้างภาพ 360 องศาสุดท้าย บางครั้งอาจเป็นค่าเดียวกับของ GPano:CaptureSoftware | ไม่มี |
GPano:ProjectionType | เปิดตัวเลือกข้อความ | ใช่ |
ทรงกลม |
ประเภทการฉายภาพที่ใช้ในไฟล์ภาพ ขณะนี้ผลิตภัณฑ์ของ Google รองรับเฉพาะค่าแบบทรงกลมเท่านั้น | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:PoseHeadingDegrees | จริง | ไม่ แต่จำเป็นสำหรับการแสดงบน Google Maps | ไม่มี | ทิศทางของเข็มทิศ วัดเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ เพื่อให้ภาพอยู่ตรงกลาง ค่าต้อง >= 0 และ < 360 | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:PosePitchDegrees | จริง | ไม่ได้ | 0 | ระดับความสูงต่ำวัดเป็นองศาเหนือขอบฟ้าเพื่ออยู่ตรงกลางในรูปภาพ ค่าต้องเป็น >= -90 และ <= 90 | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:PoseRollDegrees | จริง | ไม่ได้ | 0 | ม้วนโดยวัดเป็นองศาของรูปภาพโดยที่ระดับที่มีเส้นขอบฟ้าเป็น 0 เมื่อม้วนกระดาษเพิ่มขึ้น เส้นขอบจะหมุนทวนเข็มนาฬิกาในรูปภาพ ค่าต้องเป็น > -180 และ <= 180 | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:InitialViewHeadingDegrees | จำนวนเต็ม | ไม่ได้ | 0 | มุมทิศทางของมุมมองเริ่มต้นเป็นองศาตามเข็มนาฬิกาจากโลกเหนือจริง ซึ่งไม่สัมพันธ์กับจุดศูนย์กลางของพาโนรามา | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:InitialViewPitchDegrees | จำนวนเต็ม | ไม่ได้ | 0 | มุมก้มเงยของมุมมองเริ่มต้นเป็นองศาเหนือขอบฟ้าของโลกแห่งความเป็นจริง ซึ่งไม่สัมพันธ์กับจุดศูนย์กลางของพาโนรามา | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:InitialViewRollDegrees | จำนวนเต็ม | ไม่ได้ | 0 | มุมกลิ้งของมุมมองเริ่มต้นเป็นองศาซึ่งระดับที่มีแนวเส้นขอบโลกจริงเป็น 0 เมื่อม้วนกระดาษเพิ่มขึ้น เส้นขอบจะหมุนทวนเข็มนาฬิกาในมุมมอง | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:InitialHorizontalFOVDegrees | จริง | ไม่ได้ | ไม่มี | ช่องมุมมองแนวนอนเริ่มต้นที่ผู้ชมควรจะแสดง (หน่วยเป็นองศา) ซึ่งคล้ายกับระดับการซูม | ไม่มี |
GPano:InitialVerticalFOVDegrees | จริง | ไม่ได้ | ไม่มี | ฟิลด์ของมุมมองแนวตั้งเริ่มต้นที่มุมมองควรแสดง (หน่วยเป็นองศา) ซึ่งคล้ายกับระดับการซูม หากมีทั้ง GPano:InitialHorizontalFOVDegrees และ GPano:InitialVerticalFOVDegrees GPano:InitialHorizontalFOVDegrees จะมีความสำคัญเหนือกว่า ใช้เฉพาะ InitialVerticalFOVDegrees หากจะแสดงเนื้อหาในสัดส่วนภาพหลายแบบ และต้องการให้ขอบเขตมุมมองในแนวตั้งคงที่ขณะที่ขอบเขตมุมมองในแนวนอนอาจเปลี่ยนแปลง ผลิตภัณฑ์ของ Google ยังไม่รองรับฟิลด์นี้ | ไม่มี |
GPano:FirstPhotoDate | วันที่ | ไม่ได้ | ไม่มี | วันที่และเวลาของรูปภาพแรกที่สร้างขึ้นในภาพ 360 องศา | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:LastPhotoDate | วันที่ | ไม่ได้ | ไม่มี | วันที่และเวลาสำหรับภาพล่าสุดที่สร้างในภาพ 360 องศา | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:SourcePhotosCount | จำนวนเต็ม | ไม่ได้ | ไม่มี | จำนวนภาพต้นฉบับที่ใช้สร้างภาพ 360 องศา | สเกล/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:ExposureLockUsed | บูลีน | ไม่ได้ | ไม่มี | เมื่อมีการถ่ายภาพต้นฉบับแต่ละภาพ ไม่ว่าจะมีการล็อกค่าการรับแสงของกล้องหรือไม่ก็ตาม | ไม่มี |
GPano:CroppedAreaImageWidthPixels | จำนวนเต็ม | ใช่ | ไม่มี | ความกว้างเดิมเป็นพิกเซลของรูปภาพ (เท่ากับความกว้างจริงของรูปภาพที่ไม่มีการแก้ไข) ดูแผนภาพด้านบน | สเกล/การครอบตัด: ต้องอัปเดตพร็อพเพอร์ตี้นี้เพื่อแสดงขนาดใหม่ของรูปภาพ |
GPano:CroppedAreaImageHeightPixels | จำนวนเต็ม | ใช่ | ไม่มี | ความสูงเดิมเป็นพิกเซลของรูปภาพ (เท่ากับความสูงของรูปภาพจริงสำหรับรูปภาพที่ไม่ได้แก้ไข) ดูแผนภาพด้านบน | สเกล/การครอบตัด: ต้องอัปเดตพร็อพเพอร์ตี้นี้เพื่อแสดงขนาดใหม่ของรูปภาพ |
GPano:FullPanoWidthPixels | จำนวนเต็ม | ใช่ | ไม่มี | ความกว้างเต็มขนาดต้นฉบับที่ครอบตัดรูปภาพ ถ้าถ่ายภาพ Photo Sphere บางส่วนเท่านั้น จะเป็นการระบุความกว้างของ Photo Sphere แบบเต็ม ดูแผนภาพด้านบน | การครอบตัด: ไม่มีการเปลี่ยนแปลง สเกล: ต้องปรับขนาดอย่างเหมาะสม |
GPano:FullPanoHeightPixels | จำนวนเต็ม | ใช่ | ไม่มี | ความสูงเต็มต้นฉบับที่รูปภาพถูกครอบตัด ถ้าถ่ายภาพได้บางส่วนเท่านั้น จะเป็นการกำหนดความสูงของภาพ Photo Sphere เต็มขนาด ดูแผนภาพด้านบน | การครอบตัด: ไม่มีการเปลี่ยนแปลง สเกล: ต้องปรับขนาดอย่างเหมาะสม |
GPano:CroppedAreaLeftPixels | จำนวนเต็ม | ใช่ | ไม่มี | คอลัมน์ที่ขอบด้านซ้ายของรูปภาพถูกครอบตัดจาก Photo Sphere ขนาดเต็ม ดูแผนภาพด้านบน | ครอบตัด: หากมีการเปลี่ยนแปลงการครอบตัดด้านซ้ายของรูปภาพ จะต้องอัปเดตค่านี้ สเกล: ต้องปรับขนาดอย่างเหมาะสม |
GPano:CroppedAreaTopPixels | จำนวนเต็ม | ใช่ | ไม่มี | แถวที่ขอบด้านบนของรูปภาพถูกครอบตัดจาก Photo Sphere ขนาดเต็ม ดูแผนภาพด้านบน | การครอบตัด: หากมีการเปลี่ยนแปลงส่วนบนสุดของรูปภาพ จะต้องอัปเดตค่านี้ สเกล: ต้องปรับขนาดอย่างเหมาะสม |
GPano:InitialCameraDolly | จริง | ไม่ได้ | 0 | พารามิเตอร์ที่ไม่บังคับนี้จะย้ายตำแหน่งกล้องเสมือนจริงตามแนวสายตา ห่างจากจุดศูนย์กลางของ Photo Sphere ตำแหน่งพื้นผิวด้านหลังจะแสดงด้วยค่า -1.0 ในขณะที่ตำแหน่งพื้นผิวด้านหน้าแสดงด้วย 1.0 สําหรับการดูปกติ พารามิเตอร์นี้ควรตั้งค่าเป็น 0 | ไม่มี |
ตัวอย่าง Photo Sphere แบบเต็ม
ผู้ที่ไม่ใช่โปรแกรมเมอร์จะเพิ่มตัวอย่างข้อมูลเมตาด้านล่างลงในรูปภาพขนาดเต็มที่มีอยู่ได้ ทรงกลม (360 องศา x 180 องศา) โดยปรับเปลี่ยนเพียงเล็กน้อย ซึ่งสามารถทำได้ในผลิตภัณฑ์ตกแต่งรูปภาพ เช่น Adobe Photoshop
- เปลี่ยนรายการ 4000 และ 2000 เพื่อให้ตรงกับความกว้างและความสูงของภาพเป็นพิกเซล
- อัปเดต PoseHeadingDegrees หากคุณต้องการให้ Google Maps สามารถแสดงภาพ 360 องศาของคุณได้ ไม่เช่นนั้น คุณอาจเลือกที่จะลบพารามิเตอร์นี้
- อัปเดตหรือนำพารามิเตอร์ที่ไม่บังคับออก (ตามที่แสดงไว้ข้างต้น)
<rdf:Description rdf:about="" xmlns:GPano="http://ns.google.com/photos/1.0/panorama/"> <GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer> <GPano:CaptureSoftware>Photo Sphere</GPano:CaptureSoftware> <GPano:StitchingSoftware>Photo Sphere</GPano:StitchingSoftware> <GPano:ProjectionType>equirectangular</GPano:ProjectionType> <GPano:PoseHeadingDegrees>350.0</GPano:PoseHeadingDegrees> <GPano:InitialViewHeadingDegrees>90.0</GPano:InitialViewHeadingDegrees> <GPano:InitialViewPitchDegrees>0.0</GPano:InitialViewPitchDegrees> <GPano:InitialViewRollDegrees>0.0</GPano:InitialViewRollDegrees> <GPano:InitialHorizontalFOVDegrees>75.0</GPano:InitialHorizontalFOVDegrees> <GPano:CroppedAreaLeftPixels>0</GPano:CroppedAreaLeftPixels> <GPano:CroppedAreaTopPixels>0</GPano:CroppedAreaTopPixels> <GPano:CroppedAreaImageWidthPixels>4000</GPano:CroppedAreaImageWidthPixels> <GPano:CroppedAreaImageHeightPixels>2000</GPano:CroppedAreaImageHeightPixels> <GPano:FullPanoWidthPixels>4000</GPano:FullPanoWidthPixels> <GPano:FullPanoHeightPixels>2000</GPano:FullPanoHeightPixels> <GPano:FirstPhotoDate>2012-11-07T21:03:13.465Z</GPano:FirstPhotoDate> <GPano:LastPhotoDate>2012-11-07T21:04:10.897Z</GPano:LastPhotoDate> <GPano:SourcePhotosCount>50</GPano:SourcePhotosCount> <GPano:ExposureLockUsed>False</GPano:ExposureLockUsed> </rdf:Description>
ตัวอย่างภาพ 360 องศาบางส่วน
<rdf:Description rdf:about="" xmlns:GPano="http://ns.google.com/photos/1.0/panorama/"> <GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer> <GPano:CaptureSoftware>Photo Sphere</GPano:CaptureSoftware> <GPano:StitchingSoftware>Photo Sphere</GPano:StitchingSoftware> <GPano:ProjectionType>equirectangular</GPano:ProjectionType> <GPano:PoseHeadingDegrees>350.0</GPano:PoseHeadingDegrees> <GPano:InitialViewHeadingDegrees>90.0</GPano:InitialViewHeadingDegrees> <GPano:InitialViewPitchDegrees>0.0</GPano:InitialViewPitchDegrees> <GPano:InitialViewRollDegrees>0.0</GPano:InitialViewRollDegrees> <GPano:InitialHorizontalFOVDegrees>75.0</GPano:InitialHorizontalFOVDegrees> <GPano:CroppedAreaLeftPixels>90</GPano:CroppedAreaLeftPixels> <GPano:CroppedAreaTopPixels>128</GPano:CroppedAreaTopPixels> <GPano:CroppedAreaImageWidthPixels>2300</GPano:CroppedAreaImageWidthPixels> <GPano:CroppedAreaImageHeightPixels>1042</GPano:CroppedAreaImageHeightPixels> <GPano:FullPanoWidthPixels>4000</GPano:FullPanoWidthPixels> <GPano:FullPanoHeightPixels>2000</GPano:FullPanoHeightPixels> <GPano:FirstPhotoDate>2012-11-07T21:03:13.465Z</GPano:FirstPhotoDate> <GPano:LastPhotoDate>2012-11-07T21:04:10.897Z</GPano:LastPhotoDate> <GPano:SourcePhotosCount>50</GPano:SourcePhotosCount> <GPano:ExposureLockUsed>False</GPano:ExposureLockUsed> </rdf:Description>
ความแข็งแกร่งของการแก้ไขรูปภาพ
เพื่อให้มีประสิทธิภาพ โปรแกรมที่แสดง Photo Sphere ในโปรแกรมดูภาพควรตรวจสอบว่า ภาพ 360 องศาต้นฉบับถูกปรับขนาดโดยแอปพลิเคชันโดยไม่ได้อัปเดต ข้อมูลเมตา ซึ่งทำได้ด้วยขั้นตอนต่อไปนี้
- ตรวจสอบว่าแท็ก CroppedAreaImageWidthPixels เท่ากับความกว้างจริงของรูปภาพ
- ตรวจสอบว่าแท็ก CroppedAreaImageHeightPixels เท่ากับความสูงของรูปภาพจริง
- หากขั้นตอนที่ 1 หรือ 2 ไม่สำเร็จ ให้ตรวจสอบว่าสัดส่วนภาพของรูปภาพนั้นยังคงอยู่หรือไม่
- หากทำขั้นตอนที่ 3 ไม่สำเร็จ ห้ามแสดงภาพเป็น Photo Sphere เนื่องจากรูปภาพได้รับการดัดแปลงในลักษณะที่ไม่เข้ากันซึ่งจะทำให้เกิดการบิดเบี้ยวที่ไม่ถูกต้อง
- หากผ่านขั้นตอนที่ 3 สัดส่วนภาพจะเท่ากัน และค่าแท็กที่เกี่ยวข้องทั้งหมดต่อไปนี้ควรปรับขนาดให้พอดีกับขนาดรูปภาพใหม่
พื้นที่ที่ครอบตัดด้วยความกว้างพิกเซล พื้นที่ที่ครอบตัด รูปภาพความสูงพิกเซล พิกเซล FullPanoWidth, พิกเซลความกว้างเต็มPano, พื้นที่ครอบตัดซ้ายพิกเซล, พื้นที่ที่ครอบตัดแล้วพิกเซลด้านขวา
ภาพรวมของ Euler Angles
ออยเลอร์จะกำหนดทิศทางของ Photo Sphere ในเฟรมโลก มุม มุมออยเลอร์สามารถกำหนดได้หลายวิธี จะถูกต้อง โปรแกรมจะต้องมีวัตถุประสงค์ เป็นไปตามแบบแผนมุมออยเลอร์ที่อธิบายไว้ที่นี่
ตำแหน่งเหนือพื้นผิวโลกจะกำหนด "Local เฟรม" XYZ โดยที่ Z ขึ้นและตั้งฉากกับพื้นผิวโลก X คือ ทางตะวันออกจริง และ Y คือทิศเหนือจริง การวางแนวที่กำหนดไว้สัมพันธ์กับ "เฟรมเฉพาะที่" คงที่ และมุมออยเลอร์จะเป็นการหมุนรอบๆ แกน XYZ คงที่ ดังนั้นจึงไม่มีการกำหนดทิศทางการวางท่าทางที่เสา ช่วงเวลานี้ หมายความว่าภาพทรงกลมที่มีมุม (0, 0, 0) จะอยู่ในแนวที่ ด้านพิกเซลกึ่งกลางหันไปทางทิศเหนือด้วยเส้นศูนย์สูตรของ Photo Sphere ขนานกับ พื้นผิวโลก
มุมออยเลอร์แสดงแผนที่จากจุดต่างๆ ในรูปภาพ (หมุน)
เฟรมทรงกลม" เพื่อชี้ไปที่ใน "เฟรมในเครื่อง" (คงที่)
เมทริกซ์การหมุนสร้างขึ้นจากมุมออยเลอร์เป็น
ดังต่อไปนี้ (สิ่งสำคัญคือต้องรักษาลำดับต่อไปนี้ไว้)
R = R_Z(-ส่วนหัว) * R_X(การเสนอขาย) * R_Y(แสดง)
ตำแหน่ง: R_*(t) คือการหมุนด้วยมือขวารอบแกนที่ตั้งชื่อไว้:
R_Z (มุม) = [ cos(มุม) = [ cos(มุม), -sin(มุม), 0
และสถานที่: Z = ขึ้น, X = ตะวันออก, Y = ทิศเหนือ
คุณต้องรักษาการจัดลำดับนี้ไว้ให้ดี
R = R_Z(-ส่วนหัว) * R_X(การเสนอขาย) * R_Y(แสดง)
เพราะการหมุนไม่ได้สลับกัน
โปรดทราบว่ามุมของทิศทางจะเหมือนกับทิศทางของเข็มทิศมาตรฐาน
ข้อมูลอ้างอิง
Adobe XMP แบบมาตรฐาน: http://www.adobe.com/devnet/xmp.html