Photo Sphere XMP Meta Verileri

Burada açıklanan panorama ad alanı, Android 4.2 kameradaki Fotoğraf Küresi özelliği ile oluşturulanlar gibi, fotoğraf kürelerinin oluşturulması ve oluşturulmasıyla ilgili bilgiler sağlayan özellikler (bazen panorama olarak da adlandırılır) içerir. Meta veriler, Adobe XMP standardında açıklandığı gibi serileştirilmeli ve fotoğraf küresinin içine yerleştirilmelidir (bu sayfanın sonundaki references bakın).

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

Meta veri özellikleri

Aşağıdaki diyagramlarda ve tabloda, GPano Parametreleri tarafından kapsüllenmiş fotoğraf küresi özellikleri gösterilmektedir. Fotoğraf kürelerini düzenlerken ve görüntülerken, lütfen meta verileri bu belgenin ilerleyen bölümlerinde açıklandığı gibi doğrulayıp güncelleyin. Poz ve başlangıç başlığı alanlarını belirtirken lütfen bu belgenin ilerleyen bölümlerinde açıklanan Euler açı kurallarını uyguladığınızdan emin olun.

Google ürünlerinin yalnızca küresel projeksiyonları desteklediğini unutmayın. Ek projeksiyonlar şu anda yalnızca diğer taraflar tarafından desteklenmektedir.

Küresel projeksiyonlar

Silindir biçimli projeksiyonlar

Silindir şeklindeki bir resmin üst kısmı ufkun üzerindeyse KırpılmışAlan ÜstüPikseller negatif olmalıdır. CroppedAreaTopPixels için 0 değeri, ufukta resmin üst kısmını yerleştirir. KırpılmışAlanıTopPixel'in pozitif değeri, resmin üst kısmını ufkun altına yerleştirir.

GPano parametresi referansı

Ad Tür Gerekli Varsayılan değer
(izleyici tarafından varsayılan olduğu varsayılır)
Tesis açıklaması Resim değiştirilirse işlem yapmanız gerekir
GPano:UsePanoramaViewer Boole Hayır Doğru Bu resmin normal bir düz görüntü olarak değil, bir fotoğraf küresi görüntüleyicide gösterilip gösterilmeyeceği. Bu, kullanıcı tercihlerine göre veya birleştirme yazılımıyla belirtilebilir. Resmi görüntüleyen veya besleyen uygulama bunu yoksaymayı seçebilir. ölçek/kırpma:
Değişiklik yok. Görüş alanı belirli bir değerin altına düşerse uygulama bunu False (Yanlış) değerine geçirmeye karar verebilir.
GPano:CaptureSoftware Dize Hayır Yok Fotoğraf, Android telefon gibi bir mobil cihazdaki bir uygulama kullanılarak çekildiyse, kullanılan uygulamanın adı ("Fotoğraf Küresi" gibi). Kaynak resimler, tripod üzerinde bir DSLR kullanılarak çekilmiş gibi manuel olarak çekilmişse bu alan boş bırakılmalıdır. Yok
GPano:StitchingSoftware Dize Hayır Yok Nihai fotoğraf küresini oluşturmak için kullanılan yazılım. Bu bazen, GPU:Capture Software değeri ile aynı olabilir. Yok
GPano:ProjectionType Metin Seçimini Aç Evet

eş dikdörtgen

Resim dosyasında kullanılan projeksiyon türü. Google ürünleri, şu anda yalnızca eş dikdörtgen değerini desteklemektedir. ölçek/kırpma: Değişiklik yoktur.
GPano:PoseHeadingDegrees Gerçek Hayır, ancak Google Haritalar'da görüntülenmesi için gerekiyor Yok Resmin ortası için saat yönünde kuzeyden saat yönünde ölçülen pusula yönü. Değer en az 0 ve en fazla 360 olmalıdır. ölçek/kırpma: Değişiklik yoktur.
GPano:PosePitchDegrees Gerçek Hayır 0 Resmin merkezi için ufkun üzerindeki derece cinsinden ölçülen perde. Değer >= -90 ve <= 90 olmalıdır. ölçek/kırpma: Değişiklik yoktur.
GPano:PoseRollDegrees Gerçek Hayır 0 Resmin ufuk çizgisinin 0 olduğu yuvarlanma şekli (derece cinsinden ölçülür). Yuvarlanma sayısı arttıkça, ufuk resimde saat yönünün tersine döner. Değer > -180 ve <= 180 olmalıdır. ölçek/kırpma: Değişiklik yoktur.
GPano:InitialViewHeadingDegrees Tamsayı Hayır 0 İlk görünümün, pano merkezine göre değil, gerçek dünyanın kuzeyine göre saat yönünde derece olarak yön açısı. ölçek/kırpma: Değişiklik yoktur.
GPano:InitialViewPitchDegrees Tamsayı Hayır 0 İlk görünümün pano merkezine kıyasla değil, gerçek dünya ufku üzerinden derece cinsinden perde açısı. ölçek/kırpma: Değişiklik yoktur.
GPano:InitialViewRollDegrees Tamsayı Hayır 0 Gerçek dünya ufku seviyesinin 0 olduğu ilk görünümün derece cinsinden yuvarlanma açısı. Yuvarlanma sayısı arttıkça, ufuk görünümde saat yönünün tersine döner. ölçek/kırpma: Değişiklik yoktur.
GPano:InitialHorizontalFOVDegrees Gerçek Hayır Yok Görüntüleyen kişinin görüntülemesi gereken ilk yatay görüş alanı (derece cinsinden). Bu, yakınlaştırma düzeyine benzer. Yok
GPano:InitialVerticalFOVDegrees Gerçek Hayır Yok Görüntüleyen kişinin görüntülemesi gereken ilk dikey görüş alanı (derece cinsinden). Bu, yakınlaştırma düzeyine benzer. Hem GPano:InitialHorizontalFOVDegrees hem de GPano:InitialVerticalFOVDegrees mevcutsa GPano:İlkYatayFOVDegrees öncelikli olur. İçeriğiniz birden çok en boy oranında görüntülenecekse ve yatay görüş alanı değişebilirken dikey görüş alanının sabit kalmasını tercih ediyorsanız yalnızca InitialVerticalFOVDegrees kullanın. Google ürünleri şu anda bu alanı desteklemiyor. Yok
GPano:FirstPhotoDate Tarih Hayır Yok Fotoğraf küresinde oluşturulan ilk görüntünün tarih ve saati. ölçek/kırpma: Değişiklik yoktur.
GPano:LastPhotoDate Tarih Hayır Yok Fotoğraf küresinde oluşturulan son görüntünün tarih ve saati. ölçek/kırpma: Değişiklik yoktur.
GPano:SourcePhotosCount Tamsayı Hayır Yok Fotoğraf küresini oluşturmak için kullanılan kaynak görüntülerin sayısı. ölçek/kırpma: Değişiklik yoktur.
GPano:ExposureLockUsed Boole Hayır Yok Tek tek kaynak fotoğraflar çekildiğinde, kameranın pozlama ayarının kilitli olup olmadığı. Yok
GPano:CroppedAreaImageWidthPixels 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 şemalara bakın. ölçek/kırpma: Bu özelliğin, resmin yeni boyutunu yansıtacak şekilde güncellenmesi gerekir.
GPano:CroppedAreaImageHeightPixels 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 şemalara bakın. ölçek/kırpma: Bu özelliğin, resmin yeni boyutunu yansıtacak şekilde güncellenmesi gerekir.
GPano:FullPanoWidthPixels Tamsayı Evet Yok Resmin kırpıldığı orijinal tam genişlik. Yalnızca kısmi bir fotoğraf küresi çekildiyse, bu, tam fotoğraf küresinin ne kadar geniş olacağını belirtir. Yukarıdaki şemalara bakın. crop: Değişiklik yok.
ölçek: Uygun şekilde ölçeklendirilmesi gerekir.
GPano:FullPanoHeightPixels Tamsayı Evet Yok Resmin kırpıldığı orijinal tam yükseklik. Yalnızca kısmi bir fotoğraf küresi çekildiyse, bu, tam fotoğraf küresinin ne kadar yüksek olacağını belirtir. Yukarıdaki şemalara bakın. crop: Değişiklik yok.
ölçek: Uygun şekilde ölçeklendirilmesi gerekir.
GPano:CroppedAreaLeftPixels Tamsayı Evet Yok Resmin sol kenarının tam boyutlu fotoğraf küresinden kırpıldığı sütun. Yukarıdaki şemalara bakın. crop: Resmin sol kesimi değiştirilirse bu değer güncellenmelidir.
ölçek: Bunun doğru şekilde ölçeklendirilmesi gerekir.
GPano:CroppedAreaTopPixels Tamsayı Evet Yok Resmin üst kenarının tam boyutlu fotoğraf küresinden kırpıldığı satır. Yukarıdaki şemalara bakın. Kırp: Resmin üst kısmı değiştirilirse bu değer güncellenmelidir.
ölçek: Bunun doğru şekilde ölçeklendirilmesi gerekir.
GPano:InitialCameraDolly Gerçek Hayır 0 Bu isteğe bağlı parametre, sanal kamera konumunu fotoğraf küresinin merkezinden uzağa, görüş çizgisi boyunca hareket ettirir. Arka yüzey konumu -1,0 değeriyle temsil edilirken ön yüzey konumu 1,0 değeriyle temsil edilir. Normal görüntüleme için bu parametre 0 olarak ayarlanmalıdır. Yok

Tam fotoğraf küresi örneği

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

  1. 4000 ve 2000 değerini, resminizin piksel cinsinden karşılık gelen genişliği ve yüksekliğiyle eşleşecek şekilde değiştirin
  2. Google Haritalar'ın fotoğraf kürenizi gösterebilmesini istiyorsanız PoseHeadingDegrees'i güncelleyin. Aksi takdirde, isteğe bağlı olarak bu parametreyi kaldırabilirsiniz
  3. isteğe bağlı parametreleri (yukarıda listelendiği gibi) güncelleme veya kaldırma
<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üzenleme için dayanıklılık

Fotoğraf kürelerinin sağlam olması için, görüntüleyicide fotoğraf küreleri görüntüleyen programlar, meta verileri güncellemeden orijinal fotoğraf küresinin bir uygulama tarafından ölçeklendirilip ölçeklendirilmediğini kontrol etmelidir. Bu, aşağıdaki adımları uygulayarak yapılabilir:

  1. KırpılmışAlanıResimGenişliğiPixels etiketinin gerçek resim genişliğine eşit olduğundan emin olun
  2. CroppedAreaImageHeightPixels 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 başarısız olursa, görüntüyü kötü bozulmalara neden olacak şekilde uyumsuz bir şekilde dönüştürüldüğünden, resmi bir fotoğraf küresi olarak görüntülemeyin
  5. 3. adım başarılı olursa en boy oranı eşdeğer olur ve aşağıdaki ilişkili etiket değerlerinin tümü yeni resim boyutuna sığacak şekilde ölçeklendirilmelidir:
    KırpılmışAreaResimGenişliğiPixelleri, KırpılmışAlanıGörüntüYükseklikleri, TamPanoGenişliğiPikseller, TamPanoYükseklikPikselleri, KırpılmışAlanıSolPixels, KırpılmışAreaRightPixels.

Euler Açılarına Genel Bakış

Fotoğraf küresinin dünya çerçevesindeki yönü, Euler açılarıyla tanımlanır. Euler açıları birçok şekilde tanımlanabilir. Bir programın, doğru olmak için burada açıklanan Euler açısı kurallarına uyması gerekir.

Dünya yüzeyinin üzerindeki konum sabit bir "yerel çerçeve" XYZ'yi tanımlar. Burada Z, dünyanın yüzeyine göre yukarı ve dik, X gerçek doğu, Y ise doğru kuzeydir. Yön, bu sabit "yerel çerçeveye" göre tanımlanır ve Euler açıları, bu sabit XYZ eksenlerinin etrafındaki dönmelerdir. Bu nedenle, duruş yönü kutuplarda tanımlanamaz. Yani, açıları (0, 0, 0) olan bir fotoğraf küresi, merkez pikselinin dünya yüzeyine paralel olan fotoğraf küresi ekvatoru ile kuzeye doğru bakacak şekilde doğrultulur.

Euler açıları, (döndürülmüş) "fotoğraf küresi çerçevesi" içindeki noktalardan (sabit) "yerel çerçeve" içindeki noktalara eşleme sağlar:
 
Aşağıdaki gibi Euler açılarından bir döndürme matrisi oluşturulur (bu sıralamayı korumak önemlidir):

R = R_Z(-başlık) * R_X(ses tonu) * R_Y(yuvarlama)

burada: R_*(t), adlandırılmış eksen etrafında sağa dönerek dönmedir:

0









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

Bu sıralamayı korumak önemlidir:

R = R_Z(-başlık) * R_X(ses tonu) * R_Y(yuvarlama)

çünkü döndürmeler değişmeli değildir.

Yön açısının standart pusula istikametinle aynı olduğunu unutmayın.

Referanslar

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