abshammeri

لغز : تحويل صورة من تدرج رمادي إلى ملونة ( برمجيا )

16 ردود في هذا الموضوع

السلام عليكم ,

كل عام وأنتم بخير ,

بمناسبة العيد , لدي لغز أتمنى يعجبكم ( لا أعرف الحل ولا أعرف اذا كان لها حل , ولكن أظن أن الحل ممكن , واذا كان غير ممكن فلا نقبل الاجابة الا ببرهان رياضي :D ) .

- أسهل شيء أن تحول صورة ملونة إلى صورة ذات تدرج رمادي ( برمجيا ) , فمسألة الهدم سهلة ,

- لكن مسألة البناء صعبة , لذلك نريد تحويل صورة من التدرج الرمادي إلى وضعها الأصلي ( برمجيا ) .. طبعا نريد اللون الاصلي للصورة , وليس مجرد تلوينها باي لون .. فيمكن مثلا تحويل اي صورة رمادية , الى اللون الازرق .. ولكن قد لا يكون اللون الحقيقي للصورة هو الازرق , بمعنى أننا نريد دراسة كثافة اللون , ومن هالكلام , لاستنتاج الصور والالوان الحقيقية للصورة قبل أن تتحول الى التدرج الرمادي ,

خذ هذه الصورة على سبيل المثال ,

post-42837-1228678095_thumb.jpg

تم تعديل بواسطه الشمري
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

عندما درست الفوتوشوب قرأت قاعدة اعتقد أنها صحيحة كانت تقول "لا يستطيع الفوتوشوب خلق شيئ غير موجود و لكن بإمكانه تحسين ما هو موجود" , القصد كان الموضوع عن عمل Blur للصور الخشنة يعني بتعبير ابسط تحليل ال Pixels الموجوده في الصوره إلى أصلها (كما نرى في الأفلام (الأمريكية) :) ) .

لا أعتقد ان هناك حل لهذه العملية لأنه عند التحويل إلى الرمادي , هناك احتمالات كبيره من الألوان تتحول إلى إحتمال واحد من الرمادي

Y=0.3RED+0.59GREEN+0.11Blue

و لكن بعد كل هذه الخطبة لدي قاعدة "لا شيئ مستحيل" :rolleyes:

تم تعديل بواسطه خلدون خالد2
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اعتقد ان الامر صعب اذا لم يكن مستحيل B)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

إذا كان كل لون عند تحوله يتحول الي درجة فريدة من الرمادي فإن المسالة لها حل.

أما ان كان الف لون مختلف تتحول الي لون واحد فقط فلا يمكن عكسها الى نفس اللون السابق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

هل يمكن وضع الكود الذي يحول من الملون الى الرمادي :lol:

العملية غبر مستحيلة لاني رايت مرة فيديو من 1945 بالالوان اعيد تلوينه بالحاسوب (لا ادري هل يدوي ام باحاسوب)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الفكرة هى نفس فكرة تلوين الأفلام الأبيض و الأسود ، لذلك أعتقد أن كل لون يتم تحويله لدرجة فريدة من الرمادى ، بخوارزمية معينة ، لكن ما هى ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا على التفاعل :D .

بالنسبة لمعادلة التحويل إلى التدرج المادي , فقد وضعها ابن فلسطين (خلدون) :

Pixel =0.3RED+0.59GREEN+0.11Blue

فلو كان لدينا بكسل لها الالوان التالية

R = 255 , G=100, B=100

فان لون البكسل بعد تحويله الى رمادي

new Pixel = 255*0.3 + 100*.59 + 100*0.11 = 146.5 = 147
R=G=B=146

لذلك , لايجاد اللون الاصلي من اللون الرمادي , فاننا يجب أن نحل معادلة بثلاث مجاهيل :wacko:

0.3R + 0.59G + 0.11B = 147

- اما نحل هذه المعادلة .

-أو أن نطبق ماقاله الاخوة .. يعني نغيّر المعادلة الاصلية للتحويل الى رمادي , بحيث يكون التحويل فريد لكل لون ,

إذا كان كل لون عند تحوله يتحول الي درجة فريدة من الرمادي فإن المسالة لها حل.

10\10

العملية غبر مستحيلة لاني رايت مرة فيديو من 1945 بالالوان اعيد تلوينه بالحاسوب (لا ادري هل يدوي ام باحاسوب)

وأنا رأيت واحد مثله أيضا .. وهو الذي جعلني أضيف الموضوع

الفكرة هى نفس فكرة تلوين الأفلام الأبيض و الأسود ، لذلك أعتقد أن كل لون يتم تحويله لدرجة فريدة من الرمادى ، بخوارزمية معينة ، لكن ما هى ؟؟

ولكن ماهي ? :-)

تم تعديل بواسطه الشمري
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الطريقة الوحيدة التي اظن اني توصلت لها (بعبقريتي الفذة :lol:) ان نضبط DEFAULT PROFILE ثم نترك الحرية للمستعمل ان يضبط قيم RGB وهكذا نرتاح من وجع الراس

سالت احد الاخوة فاجابني بامكانية استعمال الذكاء الاصطناعي لكنه ما زال لم يجد اجابة كاملة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بالنسبة للتلوين الذي يحصل للأفلام (و لصورة جدي الذي لم يكن هناك تصوير أيامه) تتم بشكل سهل

و بالإمكان عملها بحيث تتم بشكل يدوي يعني بالإمكان ربط كل درجة من الرمادي بلون معين و من ثم إستبداله , أو من خلال تحديد مناطق معينة و ربط كل منطقة بلون معين.

و لكن دققو في متطلبات الأخ الشمري يريد اللون الأصلي بالضبط , بدون تدخل بشري (قريب من المستحيل).

أو أن نطبق ماقاله الاخوة .. يعني نغيّر المعادلة الاصلية للتحويل الى رمادي , بحيث يكون التحويل فريد لكل لون

فكره معقوله و لكن :)

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
الطريقة الوحيدة التي اظن اني توصلت لها (بعبقريتي الفذة ) ان نضبط DEFAULT PROFILE ثم نترك الحرية للمستعمل ان يضبط قيم RGB وهكذا نرتاح من وجع الراس

ماذا تقصد أخي بالـ DEFAULT PROFILE ؟ لان انجليزيتي مش ولا بد :)

لكن دققو في متطلبات الأخ الشمري يريد اللون الأصلي بالضبط , بدون تدخل بشري (قريب من المستحيل).

هوّ أنا ما قلت لكم , أنا لا أريدها بالظبط :D .. يعني ممكن نتدخل ونعمل برنامج يأتي بنسبة كبيرة من الالوان الاصلية ويترك لنا الباقي ,

خظرت ببالي فكرة , من خلال مداخلات الاخوة ( سرقة أفكار يعني ) :

1- لو فرضنا أن الصورة الاصلية عبارة عن 1 بت ( كل بكسل عبارة عن بت ) .. أبيض أو أسود .. فأنه يمكن بسهولة استرجاع الصورة الرمادية الى أصلها ( مافيه شيء جديد ) .

2- لو فرضنا أننا لا نعرف الا 16 لون فقط ( نعمل على نظام صخر ) .. فانه يمكننا بسهولة عمل جدول يوضح كل تدرج رمادي ولونه الاصلي ( يوجد 16 تدرج رمادي في هذه الحالة ) .

3- لو قلنا أننا لا نعرف الا 255 لون ( فرضا ) .. فانه يمكن لنا وبسهولة عمل جدول .. كل تدرج رمادي ولونه الاصلي :

مثال

0 -> black ( 0 , 0 , 0 )
100 -> red ( 255, 0,0)
255 - > white ( 255,255,255)

4- الان ,, لو استطعنا ايجاد 255 لون .. فاننا استطعنا تلوين الصورة بال255 لون .. وهو مقبول نوعا ما ..

لذلك نستطيع تطوير جدول ألوان موسع ( مثلا 512 لون .. ) كل تدرج رمادي والالوان المنتجة له ) .. وبالتالي اذا صادفنا أي تدرج رمادي فاننا ننظر الى الالوان المنتجة له , ونختار الافضل منها ..

يعني تدخّل بشري في النهاية :) .

تم تعديل بواسطه الشمري
0

شارك هذا الرد


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

سأرد على هذه النقطه و سيكون الرد شامل للنقاط الأخرى بإذن الله

لاحظ أن الألوان (الملونة) ال 16 التي نعرفها لها درجات سطوع متشابهة تقريبا (على الأقل هناك لونين لها سطوع متساوي) و في المقابل الألوان الرمادية لها درجات سطوع مختلفة (لا يوجد لونين لهم نفس درجة السطوع). في الوضع الطبيعي عندما نقوم بتحويل الألوان إلى الرمادي فإننا نعتمد على السطوع , ما يعني أنه لو قمنا بربط مجموعة ألوان (ملونة) مع مجموعة ألوان (رمادية) فإنه عند تحويل الصورة إلى الرمادي سوف تفقد مصداقيتها (لن تعود معبرة و قد تفقد الشكل الحقيقي).

مما يعني ان عملية التحويل و التحويل العكسي قد تنجح (ستنجح) و لكن إحدى الصورتين ستكون فاقدة للحقيقة , (ليس لها معنى).

الدليل :rolleyes:

post-133895-1229159343_thumb.jpg

هذه الصوره تعرض على اليسار الألون ال 16 (إختصرتهم ل 7) و الألوان الرمادية المقابله لكل لون

لدينا صورة الزهرة الملونة على اليمين و على يمينها الصورة بعد (ترميدها) :) لاحظ أن اللون الأحمر للزهرة و لون وعاء الزرع لهما نفس السطوع تقريبا ,

و لكن لاحظ في الصورة الرمادية ان الصورة ليست طبيعية , قارن سطوع الزهرة و سطوع وعاء الزراعة !!

إحترامي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخى خلدون ، مع أحترامى ،، يعنى ايه سطوع اللون ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
أخى خلدون ، مع أحترامى ،، يعنى ايه سطوع اللون ؟

brightness = (بشكل مبسط) كمية اللون الأبيض المضاف إلى اللون الأساسي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
هذه الصوره تعرض على اليسار الألون ال 16 (إختصرتهم ل 7) و الألوان الرمادية المقابله لكل لون

لدينا صورة الزهرة الملونة على اليمين و على يمينها الصورة بعد (ترميدها) لاحظ أن اللون الأحمر للزهرة و لون وعاء الزرع لهما نفس السطوع تقريبا ,

و لكن لاحظ في الصورة الرمادية ان الصورة ليست طبيعية , قارن سطوع الزهرة و سطوع وعاء الزراعة !!

إحترامي

كلامك نظريا صحيح :-) , بمعنى أن الصورة ذات التدرج الرمادي لا تعكس الواقع .. ( السطوع) ,

ولكن في الأخير نحن أمام جدول يحوي على اللون الكحلي أو البنفسجي و اللون الرمادي المقابل له ,

لذلك .. لو حولنا اللون الرمادي .. سيعود مرة أخرى بنفسجي , !

بالرغم من اختلاف السطوع ..

على العموم .. نحتاج لتطبيق , ليكون القول الفصل في هذه الحالة , وهو ما سأقوم به ان شاء الله , ولكن انشغلت كثيرا خلال اليومين الماضيين ,

- سأقوم بالتالي :

1- انشاء جدول التدرجات الرمادية ( 255 تدرج رمادي , والالوان المقابلة لها ) .

2- سأقوم بعمل تجارب على صورة BMP تحوي 255 لون فقط ..

والتجربة هي الفاصلة :-) ,

واذا استطعت عمل تجربة مماثلة .. فيا ليت ,

شكرا على تفاعلك أخي خلدون ,

تم تعديل بواسطه الشمري
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

يعني نضبط البرنامج على ان يحول كل درجة رمادي الى لون كما تكلمت من قبل لكن نترك الخيار للمستعمل ليغير الاعدادات حتي تصبح مفهومة له

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ..

عدنا والعود أحمد :-) ... فترة اختبارات وظروف قاهرة .. والحمدلله ..

لازلت أعمل على برنامج تجريبي لحل هذه المعضلة :-) ..

لكن سأوضح الفكرة التي أعمل عليها ..

المرحلة الاولى : نستطيع استرجاع 256 لون أصلي من صورة ذات تدرج رمادي .. على اعتبار أن الصورة الاصلية تحوي فقط على 256 لون .

المرحلة الثانية : توليد 256 * 5 = 1280 لون .. بحيث كل تدرج رمادي أمامه 5 ألوان تقوم بانتاجه .

المرحلة الثالثة : عمل scan كامل للصورة .. ونستنتج أكثر الالوان الرمادية تكرارا .. ونعطي المستخدم المقترحات الخمس لتلوين الصورة .

المرحلة السادسة : نعمل تقريب .. بمعنى .. لايجب وجود 256 تدرج .. ممكن نعمل 128 تدرج رمادي ..ونقوم بعملية تقريب .. حتى نوفّر الوقت والجهد على البرنامج و المستخدم .

ما أعمل عليه الان هي المرحلتين الاولى والثانية ..لان تطبيقها سهل .. المراحل االخرى تحتاج الى GUI متطوّر .. لذلك عملها بالسي بلس يحتاج الى جهد .. قد أعتمد على الجافا ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .