ข้อมูลเมตาของ XMP สำหรับภาพ 360 องศา

เนมสเปซของภาพพาโนรามาที่อธิบายในที่นี้ประกอบด้วยคุณสมบัติที่ระบุ ข้อมูลเกี่ยวกับการสร้างและแสดงภาพ 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

  1. เปลี่ยนรายการ 4000 และ 2000 เพื่อให้ตรงกับความกว้างและความสูงของภาพเป็นพิกเซล
  2. อัปเดต PoseHeadingDegrees หากคุณต้องการให้ Google Maps สามารถแสดงภาพ 360 องศาของคุณได้ ไม่เช่นนั้น คุณอาจเลือกที่จะลบพารามิเตอร์นี้
  3. อัปเดตหรือนำพารามิเตอร์ที่ไม่บังคับออก (ตามที่แสดงไว้ข้างต้น)
<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 องศาต้นฉบับถูกปรับขนาดโดยแอปพลิเคชันโดยไม่ได้อัปเดต ข้อมูลเมตา ซึ่งทำได้ด้วยขั้นตอนต่อไปนี้

  1. ตรวจสอบว่าแท็ก CroppedAreaImageWidthPixels เท่ากับความกว้างจริงของรูปภาพ
  2. ตรวจสอบว่าแท็ก CroppedAreaImageHeightPixels เท่ากับความสูงของรูปภาพจริง
  3. หากขั้นตอนที่ 1 หรือ 2 ไม่สำเร็จ ให้ตรวจสอบว่าสัดส่วนภาพของรูปภาพนั้นยังคงอยู่หรือไม่
  4. หากทำขั้นตอนที่ 3 ไม่สำเร็จ ห้ามแสดงภาพเป็น Photo Sphere เนื่องจากรูปภาพได้รับการดัดแปลงในลักษณะที่ไม่เข้ากันซึ่งจะทำให้เกิดการบิดเบี้ยวที่ไม่ถูกต้อง
  5. หากผ่านขั้นตอนที่ 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