เนมสเปซของภาพพาโนรามาที่อธิบายในที่นี้มีสมบัติที่ให้ข้อมูลเกี่ยวกับการสร้างและการแสดงภาพของ Photo Sphere หรือที่บางครั้งเรียกว่าพาโนรามา เช่น ภาพที่สร้างขึ้นโดยคุณลักษณะ Photo Sphere ในกล้องถ่ายรูปของ Android 4.2 ข้อมูลเมตาควรอยู่ในรูปแบบที่ต่อเนื่องและฝังไว้ในภาพ 360 องศาตามที่อธิบายไว้ตามมาตรฐาน Adobe XMP (ดูreferencesที่ส่วนท้ายของหน้านี้)
URI ของเนมสเปซคือ http://ns.google.com/photos/1.0/panorama/
พร็อพเพอร์ตี้ข้อมูลเมตา
แผนภาพและตารางด้านล่างแสดงคุณสมบัติของ Photo Sphere ที่รวมอยู่ในพารามิเตอร์ GPano ขณะแก้ไขและดู Photo Sphere โปรดตรวจสอบให้แน่ใจว่า ได้ยืนยันและอัปเดตข้อมูลเมตาตามรายละเอียดที่ให้ไว้ในภายหลังของเอกสารนี้ เมื่อระบุช่องท่าทางและส่วนหัวเริ่มต้น โปรดทำตามแบบแผนมุมออยเลอร์ ซึ่งจะกล่าวถึงต่อไปในเอกสารนี้
โปรดทราบว่าผลิตภัณฑ์ Google สนับสนุนเพียงการฉายภาพ 360 องศาเท่านั้น ขณะนี้มีผู้อื่นสนับสนุนการคาดการณ์เพิ่มเติมเท่านั้น
การฉายภาพ 360 องศา
เส้นโครงรูปทรงกระบอก
โปรดทราบว่าหากด้านบนของรูปภาพทรงกระบอกเหนือขอบฟ้า CroppedAreaTopPixels ต้องเป็นค่าลบ ค่า 0 สำหรับ CroppedAreaTopPixels จะวางด้านบนของรูปภาพตรงขอบฟ้า ค่าบวกของ CroppedAreaTopPixels จะวางด้านบนของรูปภาพไว้ใต้ขอบฟ้า
การอ้างอิงพารามิเตอร์ GPano
ชื่อ | Type | จำเป็น | ค่าเริ่มต้น (คาดว่าผู้ชม) |
คำอธิบายที่พัก | ต้องดำเนินการหากมีการแก้ไขรูปภาพ |
---|---|---|---|---|---|
GPano:UsePanoramaViewer | บูลีน | ไม่ได้ | จริง | กำหนดว่าจะแสดงภาพนี้ในโปรแกรมดู Photo Sphere แทนที่จะเป็นภาพธรรมดาทั่วไปหรือไม่ ซึ่งอาจระบุตามค่ากำหนดของผู้ใช้หรือตามซอฟต์แวร์ต่อภาพ แอปพลิเคชันที่แสดงหรือนำเข้ารูปภาพอาจเลือกที่จะไม่สนใจข้อความนี้ | สัดส่วน/การครอบตัด: ไม่มีการเปลี่ยนแปลง แอปพลิเคชันอาจตัดสินใจเปลี่ยนค่านี้เป็น "เท็จ" หากช่องของมุมมองต่ำกว่าค่าที่กำหนด |
GPano:CaptureSoftware | สตริง | ไม่ได้ | ไม่มี | หากทำการจับภาพโดยใช้แอปพลิเคชันบนอุปกรณ์เคลื่อนที่ เช่น โทรศัพท์ Android ชื่อแอปพลิเคชันที่ใช้ (เช่น "ภาพ 360 องศา") ควรเว้นว่างไว้หากรูปภาพต้นฉบับถ่ายด้วยตนเอง เช่น โดยการใช้กล้อง DSLR บนขาตั้งกล้อง | ไม่มี |
GPano:StitchingSoftware | สตริง | ไม่ได้ | ไม่มี | ซอฟต์แวร์ที่ใช้สร้างภาพ 360 องศาสุดท้าย บางครั้งค่านี้อาจเหมือนกับของ GPano:Capture Software | ไม่มี |
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 | วันที่ | ไม่ได้ | ไม่มี | วันที่และเวลาของรูปภาพสุดท้ายที่สร้างใน Photo Sphere | การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:SourcePhotosCount | จำนวนเต็ม | ไม่ได้ | ไม่มี | จำนวนภาพต้นฉบับที่ใช้สร้างภาพ 360 องศา | การปรับขนาด/การครอบตัด: ไม่มีการเปลี่ยนแปลง |
GPano:ExposureLockUsed | บูลีน | ไม่ได้ | ไม่มี | เมื่อถ่ายภาพต้นฉบับแต่ละภาพ การตั้งค่าการเปิดรับแสงของกล้องจะล็อกอยู่หรือไม่ | ไม่มี |
GPano:CroppedAreaImageWidthPixels | จำนวนเต็ม | มี | ไม่มี | ความกว้างเดิมเป็นพิกเซลของรูปภาพ (เท่ากับความกว้างของภาพจริงสำหรับภาพที่ไม่มีการแก้ไข) ดูแผนภาพด้านบน | สัดส่วน/การครอบตัด: ต้องอัปเดตพร็อพเพอร์ตี้นี้เพื่อแสดงขนาดใหม่ของรูปภาพ |
GPano:CroppedAreaImageHeightPixels | จำนวนเต็ม | มี | ไม่มี | ความสูงต้นฉบับเป็นพิกเซลของรูปภาพ (เท่ากับความสูงของรูปภาพจริงสำหรับรูปภาพที่ไม่ผ่านการแก้ไข) ดูแผนภาพด้านบน | สัดส่วน/การครอบตัด: ต้องอัปเดตพร็อพเพอร์ตี้นี้เพื่อแสดงขนาดใหม่ของรูปภาพ |
GPano:FullPanoWidthPixels | จำนวนเต็ม | มี | ไม่มี | เต็มความกว้างเดิมที่ครอบตัดรูปภาพ หากมีการบันทึกภาพ 360 องศาเพียงบางส่วน ข้อมูลนี้จะระบุความกว้างของภาพ Photo Sphere ที่สมบูรณ์ ดูแผนภาพด้านบน | การครอบตัด: ไม่มีการเปลี่ยนแปลง สเกล: ต้องปรับขนาดอย่างเหมาะสม |
GPano:FullPanoHeightPixels | จำนวนเต็ม | มี | ไม่มี | ความสูงเต็มขนาดต้นฉบับที่ครอบตัดรูปภาพ หากมีการบันทึกภาพ 360 องศาเพียงบางส่วน ข้อมูลนี้จะระบุความสูงของภาพ 360 องศาแบบเต็ม ดูแผนภาพด้านบน | การครอบตัด: ไม่มีการเปลี่ยนแปลง สเกล: ต้องปรับขนาดอย่างเหมาะสม |
GPano:CroppedAreaLeftPixels | จำนวนเต็ม | มี | ไม่มี | คอลัมน์ที่ครอบตัดขอบด้านซ้ายของรูปภาพจาก Photo Sphere ขนาดเต็ม ดูแผนภาพด้านบน | การครอบตัด: หากการครอบตัดด้านซ้ายของรูปภาพมีการเปลี่ยนแปลง คุณต้องอัปเดตค่านี้ สเกล: ต้องมีการปรับขนาดอย่างเหมาะสม |
GPano:CroppedAreaTopPixels | จำนวนเต็ม | มี | ไม่มี | แถวที่ขอบด้านบนของรูปภาพถูกครอบตัดจาก Photo Sphere ขนาดเต็ม ดูแผนภาพด้านบน | การครอบตัด: หากการครอบตัดด้านบนของรูปภาพมีการเปลี่ยนแปลง คุณต้องอัปเดตค่านี้ สเกล: ต้องมีการปรับขนาดให้สอดคล้องกัน |
GPano:InitialCameraDolly | จริง | ไม่ได้ | 0 | พารามิเตอร์ที่ไม่บังคับนี้จะย้ายตำแหน่งกล้องเสมือนตามแนวสายตา ให้ห่างจากจุดกึ่งกลางของ Photo Sphere ตำแหน่งของพื้นผิวด้านหลังจะแสดงด้วยค่า -1.0 ขณะที่ตำแหน่งของพื้นผิวด้านหน้าจะแสดงด้วย 1.0 หากต้องการดูแบบปกติ ควรตั้งค่าพารามิเตอร์นี้เป็น 0 | ไม่มี |
ตัวอย่างภาพ 360 องศาแบบเต็ม
ผู้ที่ไม่ได้เขียนโปรแกรมจะเพิ่มตัวอย่างข้อมูลเมตาด้านล่างลงใน 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 ในโปรแกรมดูควรตรวจสอบว่า Photo Sphere ต้นฉบับถูกปรับขนาดโดยแอปพลิเคชันโดยไม่อัปเดตข้อมูลเมตาหรือไม่ ซึ่งทำได้ด้วยขั้นตอนต่อไปนี้
- ตรวจสอบว่าแท็ก CroppedAreaImageความกว้างPixels เท่ากับความกว้างจริงของรูปภาพ
- ตรวจสอบว่าแท็ก CroppedAreaImageHeightPixels เท่ากับความสูงจริงของรูปภาพ
- หากขั้นตอนที่ 1 หรือ 2 ล้มเหลว ให้ตรวจสอบว่าอัตราส่วนของรูปภาพยังคงเดิมหรือไม่
- หากขั้นตอนที่ 3 ล้มเหลว ห้ามแสดงรูปภาพเป็น Photo 360 องศา เนื่องจากรูปทรงไม่เข้ากันซึ่งจะทำให้เกิดการบิดเบี้ยวที่ไม่ดี
- หากผ่านขั้นตอนที่ 3 สัดส่วนภาพจะมีค่าเท่ากัน และควรปรับขนาดแท็กที่เกี่ยวข้องทั้งหมดต่อไปนี้ให้พอดีกับขนาดรูปภาพใหม่
CroppedAreaImageWidthPixels, CroppedAreaImageHeightPixels, FullPanoWidthPixels, FullPanoHeightPixels, CroppedAreaLeftPixels, CroppedAreaRightPixels
ภาพรวมของมุมออยเลอร์
การวางแนวของ Photo Sphere ในกรอบโลกจะกำหนดโดยมุมออยเลอร์ มุมออยเลอร์สามารถกำหนดได้หลายวิธี ว่ากันตามตรง โปรแกรมต้องเป็นไปตาม กฎมุมของออยเลอร์ที่อธิบายในที่นี้อย่างเคร่งครัด
ตำแหน่งเหนือผิวโลกจะกำหนด XYZ "เฟรมเฉพาะที่" คงที่ โดยที่ Z ตั้งขึ้นและตั้งฉากกับพื้นผิวโลก X คือทิศตะวันออกตามจริง และ Y คือทิศเหนือจริง การวางแนวจะกำหนดโดยสัมพันธ์กับ "เฟรมเฉพาะที่" คงที่นี้ และมุมออยเลอร์คือการหมุนรอบแกน XYZ คงที่เหล่านี้ ดังนั้นการวางแนวของท่าทางจึงระบุที่ขั้วโลกไม่ได้ ซึ่งหมายความว่า Photo Sphere ที่มีมุม (0, 0, 0) จะตั้งทิศทางให้พิกเซลตรงกลางหันไปทางทิศเหนือกับเส้นศูนย์สูตรของ Photo Sphere ที่ขนานกับพื้นผิวโลก
มุมออยเลอร์จะทำการแมปจากจุดใน "กรอบโฟโต้สเฟียร์" (หมุน) ไปยังจุดใน "เฟรมเฉพาะที่" (คงที่) ดังนี้
เมทริกซ์การหมุนจะสร้างขึ้นจากมุมออยเลอร์ดังต่อไปนี้ (จะต้องคงลำดับเหล่านี้ไว้)
R = R_Z(-ส่วนหัว) * R_X(ระดับเสียง) * R_Y(ม้วน)
ตำแหน่ง: R_*(t) คือการหมุนด้วยมือขวารอบแกนที่มีชื่อ:
และที่ไหน: Z = ขึ้น, X = ตะวันออก, Y = ทิศเหนือ
สิ่งสำคัญคือต้องคงการจัดลำดับนี้ไว้:
R = R_Z(-ส่วนหัว) * R_X(ระดับเสียง) * R_Y(ม้วน)
เนื่องจากการหมุนเวียนไม่สามารถสลับเปลี่ยนกันได้
โปรดทราบว่ามุมทิศทางเหมือนกับทิศทางการชี้ของเข็มทิศมาตรฐาน
รายการอ้างอิง
Adobe XMP แบบมาตรฐาน: http://www.adobe.com/devnet/xmp.html