ফটো স্ফিয়ার XMP মেটাডেটা

এখানে বর্ণিত প্যানোরামা নামস্থানে এমন বৈশিষ্ট্য রয়েছে যা 360 ডিগ্রি প্যানোরামা তৈরি এবং রেন্ডারিং সম্পর্কিত তথ্য প্রদান করে, কখনও কখনও প্যানোরামা হিসাবেও উল্লেখ করা হয়, যেমন Android 4.2 ক্যামেরায় ফটো স্ফিয়ার বৈশিষ্ট্য দ্বারা তৈরি করা। Adobe XMP স্ট্যান্ডার্ড (এই পৃষ্ঠার শেষে রেফারেন্স দেখুন) দ্বারা বর্ণিত হিসাবে মেটাডেটা ক্রমিক করা উচিত এবং ফটো স্ফিয়ারের ভিতরে এমবেড করা উচিত।

নামস্থান URI হল http://ns.google.com/photos/1.0/panorama/

মেটাডেটা বৈশিষ্ট্য

নীচের চিত্র এবং সারণী GPano পরামিতি দ্বারা এনক্যাপসুলেট করা ফটো স্ফিয়ার বৈশিষ্ট্যগুলি দেখায়। 360 ডিগ্রি প্যানোরামা সম্পাদনা এবং দেখার সময়, অনুগ্রহ করে এই নথিতে পরে বর্ণিত হিসাবে মেটাডেটা যাচাই এবং আপডেট করতে ভুলবেন না। ভঙ্গি এবং প্রাথমিক শিরোনাম ক্ষেত্রগুলি নির্দিষ্ট করার সময়, অনুগ্রহ করে এই নথিতে পরে আলোচনা করা অয়লার অ্যাঙ্গেল কনভেনশনগুলি অনুসরণ করতে ভুলবেন না।

মনে রাখবেন যে Google পণ্যগুলি শুধুমাত্র গোলাকার অনুমান সমর্থন করে। অতিরিক্ত অনুমান বর্তমানে শুধুমাত্র অন্যান্য পক্ষ দ্বারা সমর্থিত হয়.

গোলাকার অনুমান

নলাকার অভিক্ষেপ

মনে রাখবেন যে একটি নলাকার চিত্রের শীর্ষ যদি দিগন্তের উপরে থাকে, তাহলে ক্রপডএরিয়াটপপিক্সেল অবশ্যই নেতিবাচক হবে। CroppedAreaTopPixels-এর জন্য 0-এর মান দিগন্তে ইমেজের শীর্ষে রাখবে। CroppedAreaTopPixels-এর একটি ইতিবাচক মান চিত্রের শীর্ষকে দিগন্তের নীচে রাখে।

GPano প্যারামিটার রেফারেন্স

নাম টাইপ প্রয়োজন ডিফল্ট মান
(দর্শক ধরে নিয়েছে)
সম্পত্তির বিবরণ ছবি পরিবর্তন করা হলে অ্যাকশন প্রয়োজন
GPano:PanoramaViewer ব্যবহার করুন বুলিয়ান না সত্য এই চিত্রটিকে একটি সাধারণ সমতল চিত্রের পরিবর্তে একটি ফটো স্ফিয়ার ভিউয়ারে দেখাবেন কিনা৷ এটি ব্যবহারকারীর পছন্দের ভিত্তিতে বা সেলাই সফ্টওয়্যার দ্বারা নির্দিষ্ট করা যেতে পারে। ছবি প্রদর্শন বা ইনজেস্ট করা অ্যাপ্লিকেশন এটিকে উপেক্ষা করতে পারে। স্কেল/ফসল:
পরিবর্তন নেই. যদি দৃশ্যের ক্ষেত্রটি একটি নির্দিষ্ট মানের নিচে পড়ে তাহলে একটি অ্যাপ্লিকেশন এটিকে False-এ স্যুইচ করার সিদ্ধান্ত নিতে পারে।
GPano: ক্যাপচার সফটওয়্যার স্ট্রিং না n/a যদি ক্যাপচার একটি মোবাইল ডিভাইসে একটি অ্যাপ্লিকেশন ব্যবহার করে করা হয়, যেমন একটি Android ফোন, ব্যবহৃত অ্যাপ্লিকেশনটির নাম (যেমন "ফটো স্ফিয়ার")৷ যদি উৎসের ছবি ম্যানুয়ালি ক্যাপচার করা হয়, যেমন একটি ট্রাইপডে DSLR ব্যবহার করে তাহলে এটি খালি রাখা উচিত। n/a
GPano: স্টিচিং সফটওয়্যার স্ট্রিং না n/a যে সফ্টওয়্যারটি চূড়ান্ত ফটো স্ফিয়ার তৈরি করতে ব্যবহৃত হয়েছিল৷ এটি কখনও কখনও GPano:CaptureSoftware-এর মতো একই মান হতে পারে। n/a
GPano: প্রজেকশন টাইপ ওপেন চয়েস অফ টেক্সট হ্যাঁ

সমানভুজাকার

ইমেজ ফাইলে ব্যবহৃত প্রজেকশন টাইপ। Google পণ্য বর্তমানে শুধুমাত্র ইকুরেক্টাঙ্গুলার মান সমর্থন করে। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano: পোজহেডিং ডিগ্রি রিয়াল না, কিন্তু Google মানচিত্রে প্রদর্শনের জন্য প্রয়োজন৷ n/a কম্পাস শিরোনাম, ছবির কেন্দ্রের জন্য উত্তর থেকে ঘড়ির কাঁটার দিকে ডিগ্রী মাপা। মান হতে হবে >= 0 এবং <360। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano: PosePitchDegrees রিয়াল না 0 চিত্রের কেন্দ্রের জন্য পিচ, দিগন্তের উপরে ডিগ্রীতে মাপা। মান হতে হবে >= -90 এবং <= 90। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano: PoseRollDegrees রিয়াল না 0 রোল, চিত্রের ডিগ্রীতে পরিমাপ করা হয় যেখানে দিগন্তের সাথে স্তরটি 0 হয়। রোল বাড়লে, দিগন্তটি ছবিতে ঘড়ির কাঁটার বিপরীত দিকে ঘোরে। মান হতে হবে > -180 এবং <= 180। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano:InitialViewHeadingDegrees পূর্ণসংখ্যা না 0 বাস্তব বিশ্বের উত্তর থেকে ঘড়ির কাঁটার দিকে ডিগ্রীতে প্রাথমিক দৃশ্যের শিরোনাম কোণ, প্যানো কেন্দ্রের সাথে আপেক্ষিক নয়। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano:InitialViewPitchDegrees পূর্ণসংখ্যা না 0 বাস্তব বিশ্ব দিগন্তের উপরে ডিগ্রীতে প্রাথমিক দৃশ্যের পিচ কোণ, প্যানো কেন্দ্রের সাথে আপেক্ষিক নয়। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano:InitialViewRollDegrees পূর্ণসংখ্যা না 0 ডিগ্রীতে প্রাথমিক দৃশ্যের রোল কোণ যেখানে বাস্তব বিশ্ব দিগন্তের সাথে স্তর 0 হয়। রোল বাড়লে, দিগন্তটি ঘড়ির কাঁটার বিপরীতে ঘোরে। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano:প্রাথমিক অনুভূমিক FOV ডিগ্রী রিয়াল না n/a দৃশ্যের প্রাথমিক অনুভূমিক ক্ষেত্র যা দর্শকের প্রদর্শন করা উচিত (ডিগ্রিতে)। এটি একটি জুম স্তরের অনুরূপ। n/a
GPano:প্রাথমিক উল্লম্ব FOV ডিগ্রী রিয়াল না n/a দৃশ্যের প্রাথমিক উল্লম্ব ক্ষেত্র যা দর্শকের প্রদর্শন করা উচিত (ডিগ্রিতে)। এটি একটি জুম স্তরের অনুরূপ। GPano:InitialHorizontalFOVDegrees এবং GPano:InitialVerticalFOVDegrees উভয়ই উপস্থিত থাকলে, GPano:InitialHorizontalFOVDegrees অগ্রাধিকার পায়। আপনার বিষয়বস্তু একাধিক আকৃতির অনুপাতের মধ্যে প্রদর্শিত হলে শুধুমাত্র InitialVerticalFOVDegrees ব্যবহার করুন এবং অনুভূমিক ক্ষেত্র পরিবর্তিত হওয়ার সময় আপনি উল্লম্ব ক্ষেত্রটিকে স্থির রাখতে পছন্দ করবেন। Google পণ্য বর্তমানে এই ক্ষেত্র সমর্থন করে না. n/a
GPano:প্রথম ফটো তারিখ তারিখ না n/a ৩৬০ ডিগ্রি প্যানোরামায় তৈরি প্রথম চিত্রের তারিখ ও সময়। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano: LastPhotoDate তারিখ না n/a ৩৬০ ডিগ্রি প্যানোরামায় তৈরি করা শেষ ছবির তারিখ এবং সময়। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano: SourcePhotoscount পূর্ণসংখ্যা না n/a ৩৬০ ডিগ্রি প্যানোরামা তৈরি করতে ব্যবহৃত উৎস চিত্রের সংখ্যা। স্কেল/ক্রপ: কোন পরিবর্তন নেই।
GPano: এক্সপোজার লক ব্যবহার করা হয়েছে বুলিয়ান না n/a যখন পৃথক উৎসের ছবি তোলা হয়েছিল, ক্যামেরার এক্সপোজার সেটিং লক করা ছিল কি না। n/a
GPano: CroppedAreaImageWidthPixels পূর্ণসংখ্যা হ্যাঁ n/a ছবির পিক্সেলে আসল প্রস্থ (অসম্পাদিত ছবির জন্য প্রকৃত ছবির প্রস্থের সমান)। উপরের চিত্রগুলি দেখুন। স্কেল/ক্রপ: ছবির নতুন আকার প্রতিফলিত করার জন্য এই সম্পত্তি আপডেট করা প্রয়োজন।
GPano: CroppedAreaImageHeightPixels পূর্ণসংখ্যা হ্যাঁ n/a ছবির পিক্সেলে আসল উচ্চতা (অসম্পাদিত ছবির জন্য প্রকৃত ছবির উচ্চতার সমান)। উপরের চিত্রগুলি দেখুন। স্কেল/ক্রপ: ছবির নতুন আকার প্রতিফলিত করার জন্য এই সম্পত্তি আপডেট করা প্রয়োজন।
GPano:FullPanoWidthPixels পূর্ণসংখ্যা হ্যাঁ n/a আসল পূর্ণ প্রস্থ যেখান থেকে ছবিটি ক্রপ করা হয়েছে৷ যদি শুধুমাত্র একটি আংশিক 360 ডিগ্রি প্যানোরামা ক্যাপচার করা হয়, তাহলে এটি সম্পূর্ণ 360 ডিগ্রি প্যানোরামাটির প্রস্থকে নির্দিষ্ট করে। উপরের চিত্রগুলি দেখুন। ফসল: কোন পরিবর্তন নেই।
স্কেল: এটি সঠিকভাবে সেই অনুযায়ী স্কেল করা দরকার।
GPano:FullPanoHeightPixels পূর্ণসংখ্যা হ্যাঁ n/a আসল পূর্ণ উচ্চতা যেখান থেকে ছবিটি ক্রপ করা হয়েছে৷ যদি শুধুমাত্র একটি আংশিক ৩৬০ ডিগ্রি প্যানোরামা ক্যাপচার করা হয়, তাহলে এটি পূর্ণাঙ্গ ৩৬০ ডিগ্রি প্যানোরামা কত হবে তার উচ্চতা নির্দিষ্ট করে। উপরের চিত্রগুলি দেখুন। ফসল: কোন পরিবর্তন নেই।
স্কেল: এটি সঠিকভাবে সেই অনুযায়ী স্কেল করা দরকার।
GPano: CroppedAreaLeftPixels পূর্ণসংখ্যা হ্যাঁ n/a কলাম যেখানে ছবির বাম প্রান্তটি পূর্ণ আকারের ৩৬০ ডিগ্রি প্যানোরামা থেকে কাটা হয়েছে। উপরের চিত্রগুলি দেখুন। ক্রপ: চিত্রের বাম ক্রপ পরিবর্তন করা হলে, এই মানটি অবশ্যই আপডেট করতে হবে।
স্কেল: এটি সঠিকভাবে সেই অনুযায়ী স্কেল করা দরকার।
GPano: CroppedAreaTopPixels পূর্ণসংখ্যা হ্যাঁ n/a সারি যেখানে ছবির উপরের প্রান্তটি পূর্ণ আকারের ৩৬০ ডিগ্রি প্যানোরামা থেকে কাটা হয়েছে। উপরের চিত্রগুলি দেখুন। ক্রপ: চিত্রের শীর্ষ ক্রপ পরিবর্তন করা হলে, এই মান আপডেট করা আবশ্যক।
স্কেল: এটি সঠিকভাবে সেই অনুযায়ী স্কেল করা দরকার।
GPano: প্রাথমিক ক্যামেরা ডলি রিয়াল না 0 এই ঐচ্ছিক প্যারামিটারটি ভার্চুয়াল ক্যামেরার অবস্থানকে দৃষ্টিরেখা বরাবর নিয়ে যায়, ফটো স্ফিয়ারের কেন্দ্র থেকে দূরে। একটি পিছন পৃষ্ঠের অবস্থান মান -1.0 দ্বারা প্রতিনিধিত্ব করা হয়, যখন একটি সামনে পৃষ্ঠ অবস্থান 1.0 দ্বারা প্রতিনিধিত্ব করা হয়। স্বাভাবিক দেখার জন্য, এই প্যারামিটারটি 0 এ সেট করা উচিত। n/a

একটি সম্পূর্ণ ফটো স্ফিয়ারের উদাহরণ

নন-প্রোগ্রামাররা তাদের বিদ্যমান সম্পূর্ণ ফটো স্ফিয়ারে (360 ডিগ্রী x 180 ডিগ্রী) শুধুমাত্র ছোট পরিবর্তনের সাথে নীচের মেটাডেটা উদাহরণ যোগ করতে পারে। এটি ছবি সম্পাদনা পণ্যগুলিতে করা যেতে পারে, যেমন অ্যাডোব ফটোশপ।

  1. 4000 এবং 2000-এর যেকোনো ঘটনা পরিবর্তন করুন পিক্সেলে আপনার ছবির সংশ্লিষ্ট প্রস্থ এবং উচ্চতার সাথে মেলে
  2. আপনি যদি চান যে Google মানচিত্র আপনার 360 ডিগ্রি প্যানোরামা দেখাতে সক্ষম হোক, PoseHeadingDegrees আপডেট করুন; অন্যথায়, আপনি ঐচ্ছিকভাবে এই পরামিতি অপসারণ করতে পারেন
  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>

একটি আংশিক ফটো স্ফিয়ারের উদাহরণ

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

ইমেজ এডিটিং দৃঢ়তা

শক্তিশালী হওয়ার জন্য, যে প্রোগ্রামগুলি দর্শকের মধ্যে 360 ডিগ্রি প্যানোরামা প্রদর্শন করে তাদের পরীক্ষা করা উচিত যে মেটাডেটা আপডেট না করেই কোনও অ্যাপ্লিকেশন দ্বারা মূল 360 ডিগ্রি প্যানোরামা স্কেল করা হয়েছে কিনা। এটি নিম্নলিখিত ধাপে করা যেতে পারে:

  1. নিশ্চিত করুন যে CroppedAreaImageWidthPixels ট্যাগ প্রকৃত চিত্রের প্রস্থের সমান
  2. নিশ্চিত করুন যে CroppedAreaImageHeightPixels ট্যাগ প্রকৃত ছবির উচ্চতার সমান
  3. ধাপ 1 বা 2 ব্যর্থ হলে, চিত্রের আকৃতির অনুপাত সংরক্ষণ করা হয়েছে কিনা তা পরীক্ষা করুন
  4. যদি ধাপ 3 ব্যর্থ হয়, তাহলে ছবিটিকে একটি 360 ডিগ্রি প্যানোরামা হিসাবে প্রদর্শন করবেন না কারণ এটি একটি বেমানান পদ্ধতিতে রূপান্তরিত হয়েছে যা খারাপ বিকৃতি প্রবর্তন করবে
  5. যদি ধাপ 3 পাস হয়, তাহলে আকৃতির অনুপাতটি সমতুল্য এবং নিম্নলিখিত সমস্ত সম্পর্কিত ট্যাগ মানগুলিকে নতুন চিত্রের আকারের সাথে মানানসই করতে স্কেল করা উচিত:
    CroppedAreaImageWidthPixels, CroppedAreaImageHeightPixels, FullPanoWidthPixels, FullPanoHeightPixels, CroppedAreaLeftPixels, CroppedAreaRightPixels।

অয়লার অ্যাঙ্গেলের ওভারভিউ

বিশ্ব ফ্রেমে 360 ডিগ্রি প্যানোরামের অভিযোজন অয়লার কোণ দ্বারা সংজ্ঞায়িত করা হয়। অয়লার কোণ অনেক উপায়ে সংজ্ঞায়িত করা যেতে পারে। সঠিক হওয়ার জন্য, একটি প্রোগ্রামকে অবশ্যই এখানে বর্ণিত অয়লার অ্যাঙ্গেল কনভেনশনগুলি কঠোরভাবে অনুসরণ করতে হবে।

পৃথিবীর পৃষ্ঠের উপরে অবস্থান একটি নির্দিষ্ট "স্থানীয় ফ্রেম" XYZ সংজ্ঞায়িত করে, যেখানে Z পৃথিবীর পৃষ্ঠের উপরে এবং অর্থোগোনাল, X সত্য পূর্ব এবং Y সত্য উত্তর। অভিযোজন এই স্থির "স্থানীয় ফ্রেমের" সাপেক্ষে সংজ্ঞায়িত করা হয়, এবং অয়লার কোণগুলি এই স্থির XYZ অক্ষগুলির চারপাশে ঘূর্ণন। পোজ ওরিয়েন্টেশন তাই মেরুতে অনির্ধারিত। এর অর্থ হল কোণ (0, 0, 0) সহ একটি ফটো স্ফিয়ার এমনভাবে ভিত্তিক হবে যাতে কেন্দ্র পিক্সেলটি পৃথিবীর পৃষ্ঠের সাথে সমান্তরাল 360 ডিগ্রি প্যানোরামের বিষুবরেখার সাথে উত্তর দিকে মুখ করে।

অয়লার কোণগুলি (ঘোরানো) "ফটো স্ফিয়ার ফ্রেমের" বিন্দু থেকে (স্থির) "স্থানীয় ফ্রেমের" বিন্দুতে একটি ম্যাপিং প্রদান করে:

নিম্নরূপ অয়লার কোণ থেকে একটি ঘূর্ণন ম্যাট্রিক্স তৈরি করা হয় (এই ক্রমটি সংরক্ষণ করা গুরুত্বপূর্ণ):

R = R_Z(-শিরোনাম) * R_X(পিচ) * R_Y(রোল)

যেখানে: R_*(t) নাম অক্ষের চারপাশে একটি ডান হাতের ঘূর্ণন:

R_Z(কোণ) = [ cos(কোণ), -sin(কোণ), 0
sin(কোণ), cos(কোণ), 0
0, 0, 1 ]

R_X(কোণ) = [ 1, 0, 0,
0, cos(কোণ), -sin(কোণ),
0, sin(কোণ), cos(কোণ) ]

R_Y(কোণ) = [ cos(কোণ), 0, sin(কোণ),
0, 1, 0,
-sin(কোণ), 0, cos(কোণ) ]

এবং কোথায়: Z = উপরে, X = পূর্ব, Y = উত্তর।

এই ক্রম সংরক্ষণ করা গুরুত্বপূর্ণ:

R = R_Z(-শিরোনাম) * R_X(পিচ) * R_Y(রোল)

যেহেতু ঘূর্ণন পরিবর্তনশীল নয়।

লক্ষ্য করুন যে শিরোনাম কোণ একটি আদর্শ কম্পাস শিরোনাম হিসাবে একই।

তথ্যসূত্র

Adobe XMP স্ট্যান্ডার্ড: http://www.adobe.com/devnet/xmp.html