سؤال

لدي صورة رمادية من الصورة. لقد قررت أن أجزاء معينة من الصورة غير مصنوعة من الصورة، وأن بكسل مع الإنارة Y = 0.8 يجب أن يتم تعديلها في الواقع إلى الرمادي بنسبة 90٪، أي أنه يجب إعطاء بكسل النصوع 0.9. سؤالي هو كيف أقوم بتوسيع البكسل الآخر قريب؟ أنا متأكد من أن مضاعفة جميع الإنارة بحلول 9/8 خطأ، لأنني أتذكر غامضة سماع ذلك من أجل ذلك نظرة الزي الرسمي، يجب أن يكون التحجيم غير خطي. لكنني أواجه مشكلة في العثور على معادلة ستمكنني من إحراز تقدم. (بالطبع أنا أكتب في الواقع برنامجا لجعل هذا التعديل لعدة صور عظيمة.)

مصدر البكسل الخاص بي هو تنسيق PBMPlus PGM، الذي تقول فيه صفحة الرجل:

كل قيمة رمادية هي رقم متناسب مع شدة بكسل، مع تعديلها من قبل CIE REC. 709 وظيفة نقل جاما. (تحدد وظيفة النقل هذه عدد جاما من 2.2 ولها قسم خطي لشدة صغيرة). قيمة الصفر هو بالتالي أسود. يمثل قيمة MAXVAL CIE D65 أبيض وأكثر قيمة شديدة في الصورة وأي صورة أخرى قد تتم مقارنة الصورة.

إذا فهمت هذا أفضل، فمن المحتمل أن يكون لدي فكرة أفضل كيفية المتابعة.

لقد وجدت سؤالا متعلقة صنع صورة سطوع موحد.


شكرا shmoopty للحصول على المسار الصحيح. قبلت إجابتك ثم أضافت بعض المعلومات إليها.

هل كانت مفيدة؟

المحلول

ربما تريد تصحيح اشعة جاما, ، والتي سوف تبقي حقيقي أسود وأبيض حقيقي صيح, ، أثناء ثني القيم بينهما.

الصيغة لتعديل جاما، عند الإدخال في النطاق (0.0، 1.0) هو:

output = pow( input, gamma )

...أين gamma سوف تضيء عند أقل من 1.0 ومظلمة عندما فوق 1.0.

لدفع 0.8 ما يصل إلى 0.9، تحسب log(0.9)/log(0.8) للحصول على جاما من 0.4722.

لاحظ أن هذا هو واحد من صيغ كثيرة جدا - وهو أبسط رياضيا الذي سيحافظ على أبيض وأسود كألوان فريدة من نوعها (والتي يرشد البعض أهمية) - ومع ذلك لا توجد صيغة واحدة صحيحة لتعطيك ما هو "صحيح".


addendum: لقد تحققت من أن تصحيح جاما يمكن تطبيقها على القيم التي تشفيرها Gamma بالفعل. من الصعب إشراف الرياضيات في علامة، لكن القانون الجبري الرئيسي هو

(y**a)**b == y**(a*b) == y**(b*a) == (y**b)**a

إذا قمت بتطبيق هذا القانون، فيمكنك تحديد أن تصحيحات Gamma تنقل، لذلك لا بأس، لتطبيق تصحيح Gamma على القيم المصححة بالفعل. -.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top