Fotoğraf Küresi XMP Meta Verileri

Burada açıklanan panorama ad alanı, fotoğraf alanlarının oluşturulması ve oluşturulması hakkında bilgi sağlayan (bazen panoramik olarak da adlandırılır) özellikler (Android 4.2 kamerasındaki Fotoğraf Küresi özelliği tarafından oluşturulanlar) içerir. Meta veriler, Adobe XMP standardı tarafından açıklandığı şekilde serileştirilmeli ve fotoğraf küreye yerleştirilmelidir (bu sayfanın sonundaki referanslara bakın).

Ad alanı URI'si http://ns.google.com/photos/1.0/panorama/

Meta veri özellikleri

Aşağıdaki diyagramlar ve tabloda, GPano Parametrelerinin kapsadığı fotoğraf küre özellikleri gösterilmektedir. Fotoğraf kürelerini düzenlerken ve görüntülerken meta verileri, bu dokümanın ilerleyen bölümlerinde açıklandığı şekilde doğrulayıp güncellediğinizden emin olun. Pozlamayı ve ilk başlık alanlarını belirtirken lütfen bu dokümanın ilerleyen bölümlerinde açıklanan Euler açısı kurallarına uyduğunuzdan emin olun.

Google ürünlerinin yalnızca küresel projeksiyonları desteklediğini unutmayın. Diğer projeksiyonlar şu anda yalnızca diğer taraflarca desteklenmektedir.

Küre tahminler

Silindir projeksiyonlar

Silindir şeklindeki resmin üst kısmı ufuk çizgisinin üzerindeyse KırpılmışAreaTopPixels negatif olmalıdır. KırpılmışAreaTopPixels için 0 değeri, resmin üst kısmını ufuka yerleştirir. KırpılmışAreaTopPixels'in pozitif değeri, resmin üst kısmını ufkun altına yerleştirir.

GPano parametre referansı

Ad Tür Zorunlu Varsayılan değer
(izleyicinin varsayıldığı değer)
Tesis açıklaması Resim değiştirilirse işlem yapılması gerekir
GPano:PanoramaViewer'ı kullanma Boole Hayır Doğru Bu resmin normal bir düz resim olarak değil, bir fotoğraf küre gözlüğünde gösterilip gösterilmeyeceği. Bu, kullanıcı tercihlerine veya birleştirme yazılımına göre belirtilebilir. Resmin gösterildiği veya beslendiği uygulama bunu yoksaymayı seçebilir. ölçek/kırpma:
Değişiklik yok. Bir uygulama, görüntüleme alanı belirli bir değerin altına düşerse bunu Yanlış değerine geçirmeye karar verebilir.
GPano:YakalamaYazılımı Dize Hayır Yok Yakalama işlemi Android telefon gibi bir mobil cihazdaki bir uygulamayla yapıldıysa, kullanılan uygulamanın adı ("Fotoğraf Küresi" gibi). Kaynak resimler manuel olarak yakalandıysa (örneğin, bir tripod üzerinde DSLR kullanarak) bu alan boş bırakılmalıdır. Yok
GPano:Birleştirme Yazılımı Dize Hayır Yok Son fotoğraf dünyasını oluşturmak için kullanılan yazılım. Bu bazen GPano:CaptureSoftware'nin değeriyle aynı olabilir. Yok
GPano:Projeksiyon Türü Metin Seçimini Aç Evet

eşdeğer dikdörtgen

Resim dosyasında kullanılan projeksiyon türü. Google ürünleri şu anda yalnızca eş değer dikdörtgeni desteklemektedir. ölçek/kırp: Değişiklik yok.
GPano:PoseHeadingDereceler Gerçek Hayır, ancak Google Haritalar'da görüntülemek için gereklidir Yok Resmin ortasındaki kuzeyden saat yönünde derece cinsinden ölçülen pusula yönü. Değer >= 0 ve < 360 olmalıdır. ölçek/kırp: Değişiklik yok.
GPano:PosePitchDedegrees Gerçek Hayır 0 Resimdeki merkez için ufkun üzerinde derece cinsinden ölçülen perde. Değer >= -90 ve <= 90 olmalıdır. ölçek/kırp: Değişiklik yok.
GPano:PoseRollDedegrees Gerçek Hayır 0 Resmin, ufuk hizasının 0 olduğu derece cinsinden ölçülür. Rulo arttıkça ufuk, resimde saat yönünün tersine döner. Değer > -180 ve <= 180 olmalıdır. ölçek/kırp: Değişiklik yok.
GPano:İlk GörüntülemeBaşı Dereceleri Tamsayı Hayır 0 Başlangıç görünümünün başlık açısı, pano merkezine kıyasla değil, gerçek dünyada Kuzeyden saat yönünde. ölçek/kırp: Değişiklik yok.
GPano:BaşlangıçtaViewPitchDegrees Tamsayı Hayır 0 Panorama merkezine kıyasla değil, gerçek görünümün ufkunun üzerindeki derecelerde ilk görünümün perspektif açısı. ölçek/kırp: Değişiklik yok.
GPano:İlk GörünümRollDegrees Tamsayı Hayır 0 Gerçek görünümün ufkunun 0 olduğu derecelerde, ilk görünümün yuvarlanma açısı. Yuvarlama arttıkça ufuk görünümde saat yönünün tersine döner. ölçek/kırp: Değişiklik yok.
GPano:İlkHorizontalFOVDereceler Gerçek Hayır Yok İzleyicinin göstermesi gereken ilk yatay görüş alanı (derece cinsinden). Bu, yakınlaştırma düzeyine benzer. Yok
GPano:İlkSektörFOFO dereceleri Gerçek Hayır Yok İzleyicinin göstermesi gereken ilk dikey görüş alanı (derece cinsinden). Bu, yakınlaştırma düzeyine benzer. Hem GPano:InitialHorizontalFOVDegrees hem de GPano:InitialVerticalFOVDegrees varsa, GPano:InitialHorizontalFOVDegrees öncelikli olur. İçeriğiniz birden çok en boy oranında gösterilecekse ve yatay görüş alanı değişse de dikey görüş alanını sabit tutmayı tercih ederseniz yalnızca InitialVerticalFOVDEgrees kullanın. Google ürünleri şu anda bu alanı desteklememektedir. Yok
GPano:İlkFotoğrafTarihi Tarih Hayır Yok Fotoğraf Küresi'nde oluşturulan ilk görüntünün tarihi ve saati. ölçek/kırp: Değişiklik yok.
GPano:SonFotoğrafTarihi Tarih Hayır Yok Fotoğraf Küresinde oluşturulan son resmin tarihi ve saati. ölçek/kırp: Değişiklik yok.
GPano:KaynakFotoğraf Sayısı Tamsayı Hayır Yok Fotoğraf Küresi oluşturmak için kullanılan kaynak resimlerin sayısı. ölçek/kırp: Değişiklik yok.
GPano:TemasKilitKullanıldı Boole Hayır Yok Tek tek kaynak fotoğrafları çekildiğinde kameranın pozlama ayarının kilitli olup olmadığı. Yok
GPano:KırpılmışAreaImageWidthPixels Tamsayı Evet Yok Resmin piksel cinsinden orijinal genişliği (düzenlenmemiş resimler için gerçek resmin genişliğine eşittir). Yukarıdaki şemaları inceleyin. ölçek/kırpma: Bu özellik, resmin yeni boyutunu yansıtacak şekilde güncellenmelidir.
GPano:KırpılmışAreaImageHeightPixels Tamsayı Evet Yok Resmin piksel cinsinden orijinal yüksekliği (düzenlenmemiş resimler için gerçek resmin yüksekliğine eşittir). Yukarıdaki şemaları inceleyin. ölçek/kırpma: Bu özellik, resmin yeni boyutunu yansıtacak şekilde güncellenmelidir.
GPano:TamPanoGenişlikPikselleri Tamsayı Evet Yok Resmin kırpıldığı orijinal tam genişlik. Fotoğrafın yalnızca bir kısmı çekildiyse bu, tam fotoğraf karesinin ne kadar geniş olacağını belirtir. Yukarıdaki şemaları inceleyin. kırp: Değişiklik yok.
ölçek: Bunu doğru bir şekilde ölçeklendirmemiz gerekir.
GPano:TamPanoHeightPixels Tamsayı Evet Yok Resmin kırpıldığı orijinal tam yükseklik. Yalnızca kısmi bir fotoğraf çekildiyse bu, tam fotoğraf çekiminin yüksekliğini belirtir. Yukarıdaki şemaları inceleyin. kırp: Değişiklik yok.
ölçek: Bunu doğru bir şekilde ölçeklendirmemiz gerekir.
GPano:KırpılmışAreaSolPixels Tamsayı Evet Yok Resmin sol kenarının, tam boyutlu fotoğraf küreden kırpıldığı sütun. Yukarıdaki şemaları inceleyin. kırp: Resmin kırpılmış hali değiştirilirse bu değer güncellenmelidir.
ölçek: Bunun uygun bir şekilde ölçeklendirilmesi gerekir.
GPano:KırpılmışAreaTopPixels Tamsayı Evet Yok Resmin üst kenarının, tam boyutlu fotoğraf küreden kırpıldığı satır. Yukarıdaki şemaları inceleyin. kırp: Resmin üst kısmı kırpılmışsa bu değer güncellenmelidir.
ölçek: Bunun doğru bir şekilde ölçeklendirilmesi gerekir.
GPano:İlkKameraDolly Gerçek Hayır 0 İsteğe bağlı bu parametre, sanal kamera konumunu fotoğraf çizgisinin merkezinden fotoğraf çizgisinin ortasına doğru taşır. Bir arka yüzey konumu -1,0 değeriyle, ön yüzey konumu ise 1,0 ile gösterilir. Normal görüntüleme için bu parametre 0 olarak ayarlanmalıdır. Yok

Tam küre örneği

Programcı olmayanlar, aşağıdaki meta veri örneğini yalnızca küçük değişiklikler ile mevcut tam fotoğraf katmanlarına (360 derece x 180 derece) ekleyebilir. Bu işlem, Adobe Photoshop gibi resim düzenleme ürünlerinde yapılabilir.

  1. 4000 ve 2000 arasındaki kısımları, resminizin karşılık gelen genişlik ve yükseklikleriyle piksel cinsinden eşleşecek şekilde değiştirin
  2. Google Haritalar'ın fotoğraf kürenizi göstermesini istiyorsanız PoseHeadingDegrees ayarını güncelleyin. Aksi takdirde, bu parametreyi isteğe bağlı olarak kaldırabilirsiniz
  3. isteğe bağlı parametreleri güncelleme veya kaldırma (yukarıda belirtildiği gibi)
<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>

Kısmi fotoğraf Küresi örneği

<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>

Resim düzenlemenin zorluğu

Güçlü olmak için, fotoğraf makinelerini bir izleyicide görüntüleyen programlar, meta verileri güncellemeden orijinal fotoğraf kürenin bir uygulama tarafından ölçeklendirilip ölçeklendirilmediğini kontrol etmelidir. Bunun için aşağıdaki adımları izleyebilirsiniz:

  1. KırpılanAreaImageWidthPixels etiketinin gerçek resim genişliğine eşit olduğundan emin olun
  2. KırpılanAreaImageHeightPixels etiketinin gerçek resim yüksekliğine eşit olduğundan emin olun
  3. 1. veya 2. adım başarısız olursa resmin en boy oranının korunup korunmadığını kontrol edin
  4. 3. adımın başarısız olması durumunda, bozuk fotoğraf{/1}
  5. 3. adım başarılı olursa en boy oranı eşdeğer olur ve aşağıdaki ilişkili tüm etiket değerlerinin yeni resim boyutuna sığacak şekilde ölçeklendirilmesi gerekir:
    KırpılmışAreaImageWidthPixels, KırpılmışAreaImageHeightPixels, FullPanoWidthPixels, FullPanoHeightPixels, KırpılanAreaSolPixels, KırpılmışArea RightPixels

Euler Angles'a genel bakış

Dünya karesinin fotoğraf karesinin yönü Euler açılarıyla tanımlanır. Bant açısı açıları birçok şekilde tanımlanabilir. Doğru olmak için bir program burada açıklanan Euler açısı kurallarına umalıdır.

Dünya yüzeyinin üzerindeki konum, Z'nin dünyanın yüzeyine kadar dik ve dikey olduğu, Y'nin doğru, Y'nin ise kuzeyde olduğu sabit bir "yerel çerçeve" XYZ'yi tanımlar. Yön, bu sabit "yerel kare"ye göre tanımlanır ve Euler açıları bu sabit XYZ eksenlerinin döndürmeleridir. Bu nedenle kutuplarda konum yönü tanımlanmamıştır. Diğer bir deyişle, açıları (0, 0, 0) olan bir fotoğraf küresi, fotoğraf makinesi kürenin ekvatoru yerkürenin yüzeyine paralel olacak şekilde kuzeye doğru bakacak şekilde yönlendirilir.

Euler açıları (döndürülen) "fotoğraf küre çerçevesi" noktasındaki (sabit) "yerel çerçeve" noktasındaki noktalardan bir eşleme sağlar:

Euler açılarından aşağıdaki gibi bir döndürme matrisi oluşturulur:

R = R_Z(-heading) * R_X(eğimli) * R_Y(roll)

Burada: R_*(t), adlandırılmış eksenin etrafında sağ el dönüşüdür:

    R_Z(angle) = [ cos(angle), -sin(angle),  0
                   sin(angle),  cos(angle),  0
                   0,       0,  1 ]
 
    R_X(angle) = [ 1,       0,      0,
                   0,  cos(angle), -sin(angle),
                   0,  sin(angle),  cos(angle) ]
 
    R_Y(angle) = [ cos(angle),  0,  sin(angle),
                   0,  1,       0,
                   -sin(angle),  0,  cos(angle) ]

ve burada: Z = Yukarı, X = Doğu, Y = Kuzey.

Bu sıralamayı korumak önemlidir:

R = R_Z(-heading) * R_X(eğimli) * R_Y(roll)

Bunun nedeni, rotasyonlar değişimli olmadığından

Başlık açısının standart bir pusula başlığıyla aynı olduğunu unutmayın.

Referanslar

Adobe XMP standardı: http://www.adobe.com/devnet/xmp.html