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.
- 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
- 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
- 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:
- KırpılmışAlanıResimGenişliğiPixels etiketinin gerçek resim genişliğine eşit olduğundan emin olun
- CroppedAreaImageHeightPixels etiketinin gerçek resim yüksekliğine eşit olduğundan emin olun
- 1. veya 2. adım başarısız olursa, resmin en boy oranının korunup korunmadığını kontrol edin
- 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
- 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