السلام عليكم نبدأ إن شاء الله اليوم المحاضرة حكينا
احنا في موضوع جديد المرة اللي فاتته بيحكي عن ال
basic image manipulation او ايش هي العمليات
الأساسية اللي بنستخدمها لأجل التعديل على الصورة
تمام من ضمنها كان او أهم عملية عشان نعمل تعديل
أصلا على الصورة اليمين ال region of interest
وشوفنا كيف بيتمرسم ال region of interest أو تحديده
اللي هي عن طريق x و y إما x1 y1 و x2 y2 تمام ال
upper و ال lower right أو عن طريق x و xy مع ال
width و ال height بقاش ال region of interest عشان
نقدر نطبق الخصائص اللي احنا بدنا نشتغلها على هاي
الصورة
التانى يعني أسأل من أو يعني من أهم العمليات
الأساسية اللى احنا برضه ممكن نشتغلها على الصورة
اللى هى ال enlarging و ال shrinking يعني كتير أنا
باجي بضيف الصورة بتبقى كبيرة بظغرها أو بتبقى صغيرة
بنكبرها عملية التكبير و التصغير لهاطريقة عشان تبين
معاك ان الصورة كبيرة او تبين معاك انها ايش زغرة او
صار مقاسها اصغر هنتعرف على كيف بقدر اعمل enlarge
او اعمل shrink اسمهم هيك enlarge و shrink مش
maximize و minimize طيب ايش ال enlarge و ال
shrink؟an image can be accomplished by replicating
or skipping pixels فكرتهم الأساسية للتكبير
والتصغيرة على الصورة أنه أنا في الأصل يا إما بضائف
أو بقلل replicating يعاد التكرار ال pixel يعني
مثلا كانت الواحد pixel واحدةلما بنكبرها عشان تبين
كبيرة بنخلّي بدل ما هي pixel واحدة بنخلّيها أربعة
pixel على حسب المعامل اللي احنا عايزينه واضح؟ هاي
معناه إيش replicating أنه أنا بكرر ال pixel عشان
أتبين أكبر خلاص او skipping أنه أنا بقى تنازل مثلا
كان عندي الواحد مرتين أو تلاتة بناخد منهم مرة
فبتصير أصغر هشوفها كيف ان شاء الله من خلال الأمثلة
فهذا مفهوم ال shrinking و ال enlarging بشكل يعني
أساسي أو مختصر these techniques can be used to
magnify small details in an image بستخدم هدولة
الطرق خصوصا عملية ال enlarge اللي هي عملية التكبير
أني أركز على تفاصيل صغيرة زي إن أنا zoom يعني تركز
على التفاصيل الصغيرة بحيث تبرزيها بتشكل أوضحأو ان
احنا نعمل ايش؟ هذه عملية ال shrinking او reduce a
large image in size اللي هو تقليل حجم الصورة so
that fits on the scale بحيث انها تصير مناسبةلمقاس
الشاشة اللى انت بتعرضى مثلا على سواء كان بال
maximize او بال enlarge او بال .. بال shrink بس
يعني reduce تقليل معناه بنشتغل shrink التركيز على
جزء صغير و نكبره معناه بنشتغلاش enlargethey have
advantages التنتين هدول طريقتين تبع ال enlarge و
ال shrink طبعا انا لما بدي اضيف pixels عملية صح
بديها وقت و لما كمان بدي اقل ال pixel عملية تحتاج
الوقت لكن من مميزات هدول العمليتين انهم مابياخدوش
وقت كتير بتنبع بشكل سريعلو إجارة دخلنا على ما بعرف
أخدته كيف ممكن أحسب للخورزمية الزمن مثلا تبعها ما
أخدتوش okay الفكرة عشان وقع الخورزمية اللي راح
نستعملها عشان أو وقت التنفيذ راح تستغل يعني يستغل
ال process أو ال processing أو ال operating system
في عملية تنفيذ هذه الخورزميةفي لمح البصرة زي ما
بقولوها يعني في لحظات بسيطة يعني انت مابتستنيلك
والله دقيقة عبارة عن ما يروح يحط pixels وغيرها ده،
على طول، مجرد ما تفلت ال mouse بيصير تكبير للصورة،
واضح؟ يعني من مميزات التصغير والتكبير العمليتين
اللي راح نتكلم عنهم، انهم بيصيروا بشكل سريع، هذا
من مميزاتهم، لكن ..من المساوئ أو مش سيئة على الآخر
يعني لكن يعني من الأشياء اللي لازم ناخد بالنا منها
أنه can only resize an image by an integer factor
يعني بكبر الصورة أو بصغرها بس بناء على معامل صحيح
يعني والله بدي أخليه ضعف أو تلقى أضعاف أو أربع
أضعاف الصورة الصغيرة أو أني أخليها اللي هي نص أو
ربع طبعا احنا نص و ربع مافيش عنها نصاس و رباح هيضل
عندنا قيم أشمالها صحيحة هي فقط الفكرة أو يعني
العيد الوحيد أو الشغل اللي بننتبه لإلها في عملية
التكبير والتصغير واللي هي بتتم بشكل سريع طيب كيف
الفكرة؟قبل ما نحكي هذا الحكي عشان كلامي كتير بيشرح
الطريقة بدنا نعمل مثال okay طيب لو نفترضنا انا عال
ايش بده اتكلمها؟ على ال enlarge على التكبير افترضي
عندي صورة اتنين في اتنين طيب هذا الحجم الأصل تبعها
اللي هو n في nاش فيها مثلا مفترض فيها واحد اتنين
تلاتة اربع هدولة يعني ال colors اللي موجودة داخل
هاي ال pixel عشان نعمللها enlarge بيحكيلي لازم تحط
factor يعني تحط نسبة .. نسبة على أساسها بدي تم
التكبير تاعمل؟ يعني أنا بدي إياها ضعفها تلت
أضعافها أربع أضعافها قدش بديك يعني واضح؟ فأنا عن
عسب المثال بدي أفترض أنه أنا بدي أكبرهابحيث أنها
تصير أربع
أضعف حضرو في أربعة، حضرو في إيش؟ في أربعة، فنفترض
أنه عندي المعامل هذا N، نفترض capital بيساوي أربعة
ليش؟ بس احنا مثلا لو بنجي بنعمل تكبير و تصغير
بالماوس ما بندخل العامل فهي تلقائي يعني بتصير
فالزيادة او النقصان بتكون يعني بمقدار صحيح هاي
الفكرة اتنين، تلاتة، اربعة، خمسة حسب كيف بيحسبوها
على الشاشة، ماشي؟ طيب، هلاقيت هذه كيف بدنا نعمل
يعني هروح اعمل او اشي هستفيد من هذا ال factor اني
هاخد ال factor هاد اضربه في مقاس الصورة الصغيرة
عشان اعمل منها مقاس اكبرواضح؟ طيب، يبقى اتنين ..
هذا عندي اتنين انا هي اتنين في اتنين، مظبوط؟ طيب،
اضغط في اتنين في اربعة و اتنين في اربعة، كده
بتصير؟ تمانية في تمانية، يبقى المفروض يطلع عندي
صورة، حسب ال end هاي، مقاسها كده؟ تمانية في تمانية
أربعة،
خمسة، ستة، هي سبعة تمانية، okay؟ وهي واحد، اتنين،
تلاتةاربع خمسة ستة بنقصها النصف هاي تمانية تمام؟
هذه صارت قداش الصورة تمانية في تمانية طب أول سؤال
راح نسأله لحالنا كيف بنعب الفراغات هاي المفروض أني
بعبيها من هان من نفس الصورة الصغيرةواضح؟ لو أنا
والله قلتلك حطي كل واحدة في مكانها، معناه هنخسر
الصورة تقريتنا هنا، ماعملناش إشي، ولو أنا فرضا
إيجي أتقسمت يعني هيك يعني .. يعني .. خلّيني أقول
تجاوزا بدون التعامل مع عمليات حسابية، okay؟ لو
فرضا بدي أقسمها أربع أربع، إن هذي تيجي في الرابع
الأول و هذي في التاني و هذي في التالت و هذي في
الرابع، هيجي الواحد مثلا هنا، و .. يعني كل أربع
pixel هيكون فيه عندي ..تمام؟ مافيش تقريب مانفعش
نحط تقريب بالمرة مافيش أشار أساسا واضح؟ هنحط
الأتنين هان و هنيجي الرابع التاني واحد اتنين تلاتة
هاي أربعة هاي هان هتيجي التلاتة و هنروح تيجي
الأربعة طب الباقي إيش نخط فيه؟ فاضي هيضل واضح؟
فمانفعش أنا أخد من هان و أودي هان لإن في حيثي أندي
فرغات كتير ماشي؟ طب إيش الصح؟أيوة بدنا كشفتوا ال
replication وين؟ يعني هيصير ال pixel تبعتي بدل ما
هي لأصحى صغير كأنه ناخد حيث one pixel هيصير الواحد
ماخد هذا ال block كله فهيصير عندك واحد واحد واحد
واحد واحد اتنين اتنين اتنين فهمتوا كيف؟ فانا بضعف
عدد ال pixel اللي موجودة في الصغير في الصورة
الكبيرة واضحة الفكرة؟ كيف بدنا نضعفها القطة؟ بنشوف
يبقى احنا عرفنا انه اخد منها او احطهايعني مثلا هذه
بتصير كمة اللي هي الـPixel 00 صح؟ وهذه 1 و 0مظبوط؟
وهذه 01 وهذه ايش؟ 101 يعني لو بنت أخد هذي 0 فقداش
احنا؟ في 4 لو بنعمل هيك اشي 0 في 4 هتعطيك ايش؟ او
ال pixel 00 فهو اديها في 00 على الكلام اللي احنا
اشتغلناه لان هذه لو بتضربها في 4 هتروح على ال
pixel قداش 4 و 0 فهي 4 و 0 طب لو بتاخد هذه 0 في 1
حصل عندك 04 هروح على ال pixel 04 و أحط فيهاوها دي
واحد و واحد صير اربع و اربع اخر هحط فيها طب الباقي
من و انا انعبي صعب واضح في العملية انه انا امسك
منها و اودى هناك ادى اشمالها عملية خاطئة فراحوا
اشعمله قالوا لأ احنا بدنا نستمتش القيم تبعون ال
pixel هاي بناء على مكانها هنا بناء على مكانها هنا
طب كيف بدنا نعمل؟ قالواهنجي نمسك الصورة تبعتنا و
ال pixel اللي هان شوفتوا العمليات في ال .. في ال
.. في البرمجة تفرق لما نقول x تساوي y عن y تساوي x
صح ولا لأ؟ هادي هتصير تاخد من هاي و هان هاي هتاخد
من x تفرق فاحنا هنعمل العكس هخلي هادي تاخد من ..
تقرأ من هان و هذا عشان نقرأ pixel بixel من هاي و
نشوف إيش بنسبها من هانواضحة الفكرة ايش راح نعملها؟
طيب كيف قالوا بدنا نسويها؟
طبعا هاي نفترض نسميها ال enlarge E صورة E اسمها E
و هاد الصورة الأصلية I إيش فيدا اعمل؟ هقوله إن E X
أو خلينا نقول column و row عشان نفهمها أكتر هاي
column و row اللي هي هاماشي؟ لإن همشي حامل ال loop
يبقى بناء على مين؟ على هذه الصورة مش بناء على هذه
الصورة حامل ال loop بناء على هذه الصورة طيب انا
ايش علاقة هذه الصورة بهذه الصورة؟ هذه .. هذه
مضروبة في أربعة من هاي صح؟ طب لو أنا هاي بدها تاخد
من هاي بدها تصير هاي تساوي I
في أربعة، بنفعش تقسيم قبل أن أعمل عكس، تمام؟
فبتحصل عندي ال column هذا على أربعة و ال row قيمته
على أربعة منهاصح؟ طب لو قمنا تلاتة يبقى بتصور ال
column على تلاتة و رأى على تلاتة قمنا في اتنين
هتصير هدى على اتنين يبقى عندي هدى هتصير الخوارزمية
تبعتي على n ع مقدار n اللي انا هدخله ع مقدار n
اللي انا هدخله واضح الفكرة؟ طيب شوفوا كيف راح تصير
نعمل هي كمثال نفترض ال loop طبعا ال loop يبقى
هتكون ع بناء انا من على الأكبر على الأكبر فهنصور
ال columnمثلا من صفر ل .. اللي هي سبعة و هان ..
فايتوا سبعة و هان four ال raw من صفرليش؟ لسبعة صح؟
بناء على مين؟ الصورة الكبيرة المصفوفة الكبيرة لأنه
أنا لازم أمشي عليهم كلهم لو عملت علي صغيرة معنى
الحكي همشي 01 و نقف مش هنقبل بقى هتوقف هاد في
المربع اللي هاد ماشي؟ طيب إيش بده يصير معايا
تعالوا نطبق إيش عندي أنا ال row zero المفروض إيش
هيمشي هيك
Columbo مش مشكلة زي ما تمشي تمشي Columbo رو قداش
عيندي أنا Zero و Zero صح المكان Zero و Zero هانقش
اللي يكون Zero على أربعة و Zero على أربعة يعني
Zero و Zero يعني أنا ال Pixel اللي موجودة في E صفر
و صفر بدها تاخد قيمتها من مين؟ من I Zero و Zero
تمام هيك؟ فهننقل الواحد خلصنا منهاطيب اللي وراها
ايش بتكون عندى؟ صفر و واحد احنا هنقراها هيك ال
loop اللي عندى okay صفر و واحد طيب صفر و واحد
وراها ايش بتكون؟ برضه صفر و ربع في عنا حاجة اسمها
ربع فبنعمل ال truncate الربع قداش اصلا هي point
خمسة و عشرينصح؟ و لا point خمستاشر ربعا point خمسة
و عشرين فهذا بنشال بضل zero الصحيح okay طيب يبقى
ضلة ال pixel مين؟ zero zero يبقى أنا صفر و واحد
هان هتاخد قيمتها من مين برضه؟ من صفر و صفر هان
فهيضل يحط واحد
ماشي؟ ايوة فحنضمن الوقت ايش هياخد مثلا واحد واحد
لما تصير هنا عند ال .. واحد واحد مثلا او كذا
هتشوفوا كيف محل ما هيصير في واحد تغيير هيصير ياخد
من مين نمشي في هيك شوية نفترض صراعنا صفر و اتنين
نمشي ال role أول و تشوفوا كيف رح يصير صفر و اتنين
اللي هي هم هذه هتاخد صفر على0 على 4 الكونوم وهذه
برضه ايش؟ 2 على 4 هي نص راحت 2 بل صفر واضح؟ او راح
ال point five يعني راحت بلت عندها zero فهيرجع ياخد
من صفر صفر فهذه هتبقى واحد طيب صفر و تلاتة اللي هي
هان صفر و تلاتة هتصير هنا صفر على 4 صفر و 3 على 4
اللي هي تالتة اربعة اللي هي خمسة و سبعين راحت بقى
صفر برضه هتاخد من وين من زيرو زيرو فهياخد واحد طب
نشوف هذه هتيجي على التلاتة هياخد تلاتة فعلا ولا لأ
اللي هي قداش صفر و أربعة ماشي صفر و أربعة صفر على
أربعة صفر طب و أربعة على أربعة واحد يبقى أسر عندها
الات صفر و واحدهياخد من وين؟ هي 0 و 1 فعصير ياخد
أيه؟ هيها قيمة التلاتة إيجدها و اتحط إيش الفكرة؟
واحدة .. طبعا كل اللي بعد هيك ليها 0 و 5 و 0 و 6 و
0 و 7 كلهم لما تيش تقسميهم على 4 على 4 هيطلع 1
point شغلة .. 1 point شغلة .. هينشعل .. 16 .. 16
.. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 ..
16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16
.. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 ..
16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16
.. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 ..
16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16 .. 16
.. 16 .. 16 .. 16 ..لأن هذه 7x7 أو يعني 8x8 من صفر
لسبع بس هنقف عندها okay فهدول كلهم الأربعة و
الخمسة و الستة و السبعة لما تقسميهم على أربعة
بيطلع واحد point كسر مظبوط هيروح الكسر أو جزء
العشر للواحد فكلهم هياخدوا نفس المكان اللي هو 01
فعملنا replicationكررنا هذا البيكسل او القيمة هذه
و القيمة هذه بحسب طبعا ال width و ال height اللي
احنا زودنا او حسب الزيادة اللي احنا عملناها فدول
كل ياتهم هياخدوا قيمة البيكسل صفر و واحد طبعا نفس
الاشي لما ييجي يرجع تاني هيرجع يكرر هذه يعني
لو جربتوها هيك شايفين كيف ال replicationبتطلب هذا
الشكل و لما يوصل هنا هيأخد قيمة هذه 1 و 0 فهيصير
يكرر هذه المنطقة كلها
بهذا الشكل وهذا هتصير بنفس
القيمة اللي موجودة في ال pixel اللي هناك فبتصير
الصورة أكبرواضح؟ يعني بضيف كونوم زيادة و raw زيادة
لما بعمل تكبير صح ولا لأ؟ واضح؟ طيب واضحة فكرة ال
enlarge؟ واضحة إيش صوّينا؟ يبقى هان بصي بوصف ليها،
تعالوا نقرأ الكلمتين هدول بقولوا to enlarge ال
image عشان نعمل تكبير للصورةby an integer factor n
انت بتحدد قيمة هذا التكبير we must replicate
pixels such that each pixel in the input لو ما
هدلها كل pixel في ال input image becomes n في n
block بصي حجم ايش؟ n في n block يعني الأربعة تبعتك
هذه هتصير حجم ال pixel أربعة في أربعة هايهماربع
فاربع ال block لو قلت اتنين هتاخد مساحة اتنين
فاتنين في ال image خلاص؟ of in the identical pixel
in the main output imageطيب the most
straightforward .. هذا بيحكي عن المشكلة اللي احنا
اتكلمنا فيها بقولي the most straightforward
implementation of this involves iterating over the
pixels in the larger output image and computing
the coordinates of the input image pixels from
which a value must be taken يعني لازم انا بحسب
قيمة ال pixel ها من وين هيتتاخد من الأثر مابعمل
العكسما بقول هذه حطليها هنا و هذه حطليها في المكان
هنا لإن هيصير في عندي فراغات و ساعتها هيصير صعب
نعبيها لكن لما تقرأ من هنا ال pixel تبعتك و تشوف
أيش بنسبها من الصورة الأصلية بتعبيها كلها بشكل
صحيح طيب for a pixel x y in the output image the
corresponding pixel in the input image is زيه x
على nيعني قيمة البيكسل اللى فى ال output هى دى
قيمة البيكسل اللى فى ال output هتكون متاخدة من X
على N من هنا احنا هى شايفين الصورة ال input ال I
عملناها ال column روح على Nو ال pixel الاصلية او
ال pixel تبعت ال enlarge او ال output يعني image
أخدناها كله مره عادي pixel عادي بس أخدت قيمها من
ال input image على أساس x على n و y على n واضح؟
the calculation of the coordinates is done using
an integer طبعا arithmetic لازم تكوني بشكل صحيح
يعني تستخدم فقط الأعداد الصحية واضح هذا يعني أنا
وقرأتلكوا يهد في الأول ماكناش هنفهم بس يعني مع
المثال صار واضح إيش المطلوب أو إيش اللي هو بده
يوصلنا إليه
هنعنى الخوارزمية يعني بكل بساطة صار سهل ان اكتب
الخوارزمية بتاعتها ايش بده اعمل؟ بده اعمل خوارزمية
enlarge بده اعمل خوارزمية تلاقاش enlarge ايش بكتب؟
طبعا هدخل input image وندخل من ال in او المقدار
اللى احنا على اساسه بنعمل تكبير integer input
وهيطلع ال actor هو ال enlarge imageإيش بده أسوي؟
بده أعمل create لـnew image اللي هي الـ enlarged
image قداش حجمها هيكون .. هنشأ صورة .. مانا هنشأت
صورة بس فاضية قداش مقاسها with multiply size in
يعني هتشوف إيش ال input image قداش حجمها و تضر
بحجمها بال in اللي انت دخلتيها
مضاعف يعني مضاعف بحسب نسبة ان اللي انت دخلتيها
okay for each row ان اللي علقت بالشغل عالميا على
الطول والعرقبة ال enlarged imagefor each row in
enlarged image وكلم in enlarged image بس هنشتغلها
كلم كلم تمام بدّل ال loop set enlarged image اللي
هو ال output بقيمة من كلم و روبت ساوي ال image
اللي احنا اصلا دخلناها حسب كلم على n و روع على n
بنخلص ال loopاللي جوه واللي برا وبعدين بنطبع أو
بنعمل output لمين لل enlarged image بدك تعطي
التنتين مثلا تقلد ال enlarged و تقلد مين ال image
الأصلية عشان تشوفي قداش نسبة التكبير واضحة هذه؟
فيها أي مشكلة؟ طبعا هنا يعطيني مثال هذه صورة أصلا
كانت صغيرة و احنا كبرناهافطلعت بهذا الشكل وعملها
على الخورزمية اش عملات replication لل pixel وصار
عندى عدد ال pixels اكتر طيب
ال shrink حد بقدر يقولى كيف اعمل shrink؟ ممكن تقسم
يعني على المغامر اش اقسم يعني على المغامر اقسم ال
x و ال y على المغامر لإيش؟ x و y اقسم على المغامر
ما احنا هناك قسمنا لإن يعني كلها على المغامرمين
اللي بتقسمها؟ القسمة
مش هتصير هان، مش هان، القسمة هتصير في هادي، لما
أنا إجيت بدأ أصغر حجم الصورة أو أكبر، يعني في
التكبير باخد حجم الصورة الأصلي و بدربه في إيه؟
هلقيت هل هي هذه الصورة الأصلية؟ نفضلت، هي هذه
الصورة الكبيرة اللي دخلناها، بدنا نروح نصغرهاأيوة
فبتقسميها قداش نسبة تتصغير معاي؟ بنقسمها على قداش
المعامل اللي أنا بده أصغر فيه فنفترض أنه أنا بده
أصغرها على قداش .. نفترض بده أربعة فاربع okay؟
يبقى بده أقسم على اتنين اربعة هي تمانية، بده أقسم
على اتنينأيوة بالظبط ماشي هيصير ash ان دي لو انا
نفترض هذه الصورة الأصلية صارت و بدنا نروح نعمللها
shrink نروح نعمللها ash الشرينك لازم نحدد ان ان
هذه بحسب القيمة اللي هتقسم عليها بصرا ان عدد ال
pixel في الصورة الجديدة نفترض أننا بنعملها اربعة
فاربعةأو بلاش أربعة عشان تشوفوا كيف راجحها زي هذه
يبقى على أداش بدي أقسم على أربعة واضح؟ بدي أخليها
برضه أربعة عشان أريكي عملية ال skipping أنه أنا
بتنازل عن بعض ال pixel لإنه في تكرار باخد جزء من
هاي ال pixel و بسيب الباقي واضح؟ طيب إن بدي أتساوي
أربعة يبقى حجم الصورة تبعتي هنا تمانية في تمانية
بدي أقسمه على أربعة عشان أجيب حجم الصورة لجديد
فهيصير عندي على أربعة تمانية على أربعة اتنين و
تمانية على أربعة اتنين فهذا ال shrink هتكون
أبعادها اتنين في اتنين اللي راح نشيها تمام هيك؟
هلاقيتك كيف بدي أحط بيانات لل shrink image نفس
الفكرة ما باخد من هنا و بروح بحط هنا لإن ممكن أسيب
ممكن يكون القيمة .. القيم اللي هنا مختلفة يعني
مقدرش أروح أخد هذه بدل بعض واضح؟فبرضه هروح أفحص
هذا المكان و أشوف من وين أجيب قيمته من الصورة اللي
أنا دخلتها طيب عشان أجيب قيمته إيش نعمل؟ نفس
المعاملة اللي بصدرتهاواضح صارت معاك عكسية العملية
ماشي فبتصير عندي العملية تبعت الشرينك نفترض هاي
الصورة اللي أنا مسميها E هذي ال input تبعي و بدي
أحولها ليهاش لشرينك عفوا الشرينك بيحول .. ناخدها
من ال Eshrink بتاخد من مين؟ من ال E صح؟ طيب ال
column و ال row تبع الشرينك بده ياخد قيمته من ال
column مضروب في ال 4 اللي هي في ال N و ال row
مضروبة في 4 اللي هي ال N طبعا عشان نعرف قداش قيمته
من هنا خلاص؟ طيب تعالى نجرب نشوف هيعطيني صح ولا لأ
طبعا ال loop هتكون على أساس مين؟ أساس ال shrink
يبقى ال loop تبعتك for كولوم من
صفر لأداش احنا قلنا اتنين في اتنين من صفر لواحد
صح؟ و ال row for ال row من صفر لواحد تمام ايه؟
طبعا تعالوا نجرب ال shrink 00
zero و zero هتكون نخد قيمتها من مين؟ من zero في
أربع أو zero في أربع اللي هي zero zero طب يبقى
هتاخد من مين E zero zero one E zero zero هي واحد
هيروح ياخد بس الواحد تمام؟ طيب هلقيت أن أنا ماشيت
على الواحد المفروض صفر ال raw أفر أه صحيح صفر و
واحد طيب مين بتكلم؟ أنا هنا
صح؟ بحكي على صفر و واحد اللي هي هان هي صفر و واحد
و هدي واحد و صفر و خانه ايش؟ واحد و واحد طيب صفر و
واحد ايش هتاخد من هان؟ صفر في أربعة صفر اللي هي
ايه؟ zero و واحد في أربعة؟ أربعة فهنروح على صفر و
أربعة هان طيب وين صفر و أربعة؟ صفر و صفر و واحد
اتنين تلاتة هي أربعة okay اللي هياخد التلاتةطيب،
إيش بده يسوي؟ يبقى حيروح يعطي هذه القيمة لمين لـ
01 هناك، فهيروح ويحطلي 3 هنا، يعني أنا skipping،
شوفوا كيف، نطيت أو لغيت مجموعة من القيم بناء على
حجم الصورة اللي أنا بديها، ماشي؟ طيب، هلاقي تانيشة
طبعا خلصت منها، هنروح على ال column، هيصير عندي
واحدو صفر و الواحد و واحد بدنا واحد و صفر ايش
هتصير؟ أربعة و صفر و الواحد و واحد هتصير أربعة و
أربعة طيب أربعة و صفر وانها؟ هاي أربعة أربعة و صفر
صح؟ فهذه هي هتعطيكي الاتنين و يحطها محل مين؟ واحد
و صفر هناكطيب و أربعة و أربعة هي المكان هذا اللي
هي قيمته أربعة هروح نعطيها لمين؟ لواحد و واحد
فبصير عند الصورة صغرت بمقاس اتنين في اتنين و أخدنا
.. لاحظوا معظم القيم يعني واحد و اتنين و تلاتة و
أربعة كلها أخدناها بس طبعا مش بنفس العدد التكرار
شيلنا .. التكرار شيلنا واضح؟طب لو بدعملها أربعة
فاربعة هتتكرر الواحد أربعة مرات و الأتنين أربعة
مرات و التلاتة أربعة مرات و الأربعة أربعة مرات
هتلاقي إيش هيعمل؟ هياخد من هان و ممكن ياخد هاي
يعني هيسيب عمود هياخد هذه و ياخد هاي جربوها okay؟
هذه الأربع قيم أو التمن قيم اللي راح ياخدهم في
الصورة .. الستاشر قيمة عفوا اللي راح ياخدهم في
أربع فاربع يعني لو جربت على سبيل المثال واحد
هد قداش قلنا اه واحد وصفر هتصير قداش على أربع
فاربع اتنين واحد وصفر .. عفوا عشان
تشوفوا مين المكان بالظبط
اربع طيب هاي zero zero واحد و صفر و اتنين و صفر
اتنين افضل اتنين و واحد اتلاته صفر و انا صفر و
واحد تمام؟
طيبها دي مقوفة من 00 طبعا طب هنا 101 المفروض ييجي
ياخد من مين ال column تبعنا هيكون هنا 101 هناك هنا
هيكون اش اضربي .. طبعا هنا مش هنضرب في أربع هيصير
الضرب عندك في اتنين في قداشر احنا هنقسم على اتنين
هنضرب في اتنين لو بقولك يعني عملناها اربع فاربعة
لما بدك تعمليها اربع فاربعة شرينك بس عشان تشوف من
وين بده ياخدOkay؟ معناه N هتصير هنا عديش عندنا؟
اتنين ايه؟ شوفي عندنا S column و row بدها تساوي ال
.. اللي هي E في column في اتنين و ال row في اتنين
صح؟ طيب قدر بهذه 00 هتاخد من 00ماشي؟ مافيش فيها
مشكلة صفر و واحد صفر و واحد هتصير صفر و اتنين صفر
و اتنين وان صفر و اتنين؟ واحد هاي صفر و صفر صفر و
واحد صفر و اتنين اه يبقى احنا اه سيبنا هذه بسيب
سطر و بياخد سطر okay هاي عشان نتأكد بس ان احنا
عملناها ال column صح ال row جبناها غلط يعني هيك
هيجي
شايفين كيف؟ توصير ياخد قيمة و يسيب قيمة و ياخد
الوراة حسب كيف قيمة ال block حسب إيش قيمة ال block
فهيصير ياخد واحد واحد واحد واحد و أنا اتنين اتنين
اه تلاتة تلاتة و أنا اتنين اتنين اربع اربع بهذا
الشكل واضحة الفكرة؟سهلة ولا صعبة؟ سهلة بس شوية
وفغيرة يعني مش إيش كبير يعني، واضح؟ فهذا الـeta
بيجي بيعمل الشرينك، إيش بيحكي لها الشرينك؟ to
shrink an image by an integer factor in, we must
sample every inch، sample، بدنا نجمع، تمام؟ داخد
إيش؟ عينة يعني، داخد عينة من الinch pixel in the
mean horizontal and vertical direction and ignore
the otherناخد بس الانث اللي احنا بدناياه و نتجعل
الباقي زي ما احنا نعمل هنا سبل صف و تركنا صف او
سبل أخدنا عمود وسيبنا تلت عندان حسب قيمة in اللي
انت راح تشتغل عليها again this technique is most
easily implemented by iterating over pixel in the
output image and computing the coordinates of the
correspondingoutput image pixel برضه نفس الفكرة
بناء على المخرج أنا بجيب قيمة ال pixel و هدول
الشرينك و الإلاج بنات بناء على مين؟ بناء على يعني
بتتم تطبيقها pixel ب pixel أنا بعمل kernel يعني
بمشي pixel ب pixel زي ما أنتوا شايفين طبعا
هي الخوارزمية بتاعتها
إيش بيحكيلي ها؟ هدخل image، هدخل in، وندخل أو عفوا
ال output هتطلع عند ال shrink image، في أي مشكلة؟
في إيش؟طيب هننشغل image shrink image بس ايش هيكون
مقاسها مقصودة على n divided by n اللي انت هتدخليها
و هنقرأ row و column بالنسبة لمين لل shrink image
و حيصير عند ال shrink image column رو بتساوي ال
image column مضروبة في ال n row مضروبة في ال n و
ننهي ال loop و نرجع الصورة القديمة الصورة عفر لل
shrink image و نعملهذه كانت كبيرة و رجعناها ash
عملنا لها shrink او عملنا لها تصغير طيب شو اللي
بتخل على بعض يعني انت لو أسابيه انسيت تضرب بيها
بعمل ضرب ولا بعمل قسمة مجرد اعمللك مثال صغير قولي
هذه صغيرة بنكبرها كده بنكبرها؟ بدي حجمها يكون ضعف
حجمها يبقى بدنا نضرب عشان نجيب يبقى القيمة اللي
انا هتكونهاتمام؟ هتكون مقصومة على إيه منها؟ عكسي
يعني ..بعدين هتضربوا في الأول يبقى ال .. ال .. ال
.. ال column ربنا نقسم .. إذا قسمنا يبقى بدنا نضرب
.. بس يعني حط مثال صغير و أنا ليه لحالك بتتذكر
يعني .. مش .. مش محتاجة كتير طيب
.. نشوف موضوع أخر يعني أو شبه الأبل الأخر .. بحسب
حسب الوقت اللي بقى reflection ايش ال reflection؟
انه عكس مش دوران خدوا بالكم مش دوران طيب ال
reflection هنا اما بيكون بناء على طبعا بالنسبة
للمحور هاي الصورة بهذا الشكل لو حطيت عليها المحاور
اما او بلاش زي هيك عشان تعرفوايا vertical يا
horizontal يعني هاي هان إذا كانت هيك و بتدقلبها
على الشقة التانية يعني مثلا هاي A و B في هذا الشكل
هتصير هنا A و تصير هنا B واضح؟ هاي ال reflection
فهد إيش ماله؟ صار انعكاس بناء على ال Y axisبناء
على مين؟ على ال Y-axis طيب لو انا ازا ترميلي اتحد
عكسناها فبتصير هيك و ايه هيك؟ صح؟ هي مين الصورة
تبعتنا فهيك احنا عكسناها بناء على مين؟ على ال X
-axisو هذه نفس الشيء لو انا بده اعكسها بس .. بس
يعني اذا كانت الاصل بتكون هي انعكس على ال X لكن
اذا كان في الاصل نكون نعمل انعكس Y بعد انعكس X
فبتصير طبعا هذه هيك و هذه مين؟ بيعد الشكل خلاص؟
يبقى انا reflection و الصورة بتبقى في مكانها يعني
هي مش بتصير تحتيعني هي فعليا بتنعكس في مكانها أه
بس أنا يعني بوريكي كيف بصير شكلة على المحور واضح؟
فإيش اللي بيحكيليه؟ بقول إن reflection along
either of the image axis can also be performed any
place يعني بيتم رينيكاز بناء على المحاور أه X أو Y
بس بتبقى في مكانها يعني ما بتنتقل من مكانها الصورة
this simply involves كتاب كتاب بتصير إيه؟
مش عارف بده يعمل reflection بس عملية أيوة تبديل
أبدي نص ال pixel ال row اللي تحت أجيبها فوق و اللي
فوق أجيبه تحت إذا بدنا نعمل على ال X و إذا بدنا
نعمل على ال Y ال column اللي كانت علمي بنجيبه
عشمار و العشمار بيصير علمي مجرد إعادة ترتيب ال
columns أو ال rows أو اتنين مع بعض، واضح؟فحاسسنا
ان دي reversing the mean of the order عكس ترتيب of
pixels in the rows or columns of the mean of the
average من هنا رجع نعيد او نعكس ترتيب ال pixel ال
raw و ال column طيب نشوف كيف .. ايش ال .. ال .. شو
.. ال ..ال equation أو المعادلة الآن هستخدمها عشان
نعمل اعادة ترتيب اعادة ايه ايش؟ ترتيب فع السبب
المثال لو عندك ال image ايه image؟ هد ايه ايه؟
vertical vertical reflection ايش يعني vertical؟
عمودي المفروض ايش يصير؟ هد محل هد و هد محل هد
عمودي، هي عموديK عمودي صح تعالوا نشوف اذا انا هيك
صح ولا لأ okay هندخل الصورة و بيطلع عند reflection
image طيب بده ادخل صورة هيك بسيطة وهي
واحد وهي اتنين وهي تلاتة وهي اربع بده اشوف ده تصير
الاتنين محل الواحد و الواحد محل الاتنين اللي
المفروض و الأربع محل التلاتة و التلاتة محل الأربع
خلاص طيبcreate a new image reflection طبعا هنا ال
reflection image هيكون مقاسها نفس مقاس الصورة
العصلية ماشي؟ فهيعمل صورة طولها و عرقها بنفس
الصورة العصلية هذه مثلا بدنا نسميها image وهذه
reflection image خلاص؟ اه قلت انت مكتوب vertical و
هو reflection طب وهذا horizontal
طب خلّيني اشوف ايش المعادلة
اللي بتعمل و بنحكيلكوا يعنى طيب هناخد ال و دي يا
بنات هتاخد ال image widthهياخد عرض الصورة طب عرض
الصورة اللي هو هيك اللي هي اتنين صح؟ هذه ال width
تبعنا بيساوي اتنين خلاص؟ طيب هيقرأ row و يقرأ
column لمين؟ لل image سواء الأولى او التانى يعني
بغض النظر بدو يجي يعملك من صفر لوحد حسب صورتنامن
صفر لواحد ومن صفر اش لواحد ال reflection image
column و row هذه هنقول zero و zero بدها تكون عبارة
عن مين ال image الأصلية اللي هي ال w اللي هي اتنين
اللي أخدناها ناقص ال column ناقص واحد هذا وين أنا
حطيته محل منطقة ال column المعادلة هذه ال row ما
يغير هذا ال row لو أنا بدي أعمل horizontalبحط نفس
المعادلة هذه هنا وهذه بتبقى مثل ما هي column من
غير تعديل ماشي طيب اتنين ناقص ال column قداش احنا
Zero ناقص واحد و الرقم عنده صفر صح طيب اتنين ناقص
واحد بصير واحد و صفر طيب يبقى انا الصفر و الصفرأنا
قد قيمتها من مين؟ من الواحد و الصفر طيب هذه هيها
zero zero و هذه zero واحد صح؟ و هذه واحد و صفر و
هذه واحد و واحد okay طيب يبقى العكس من تحت اه صحيح
اللي هي سالب و موجب ان فوق موجب و تحت سالب هاي Y
okay طيب انها صفر العصرهذه الـ 00 لها هتاخد قيمته
من واحد و صفر لها فهتصبح ثلاثة أفقي خلاص؟ طيب هروح
نمشي على هالمين 01 فهذه برضه هتبقاش 2-0-1 نفس
الاشي اللي هي واحد و واحد فليضلط ال row مثل ما هي
حسب ما يصير واحد و واحد فهيصير عندك انه قيمة الصفر
واحد هال صفر واحد هال هايها صفر واحد هال بيصير
مقدة قيمة الواحد و واحد هال هي أربع طبعا؟ طيب
القيت الصف التاني اللي هي واحد و صفر من الصورة
الأصلية بيصير قداش واحد
و صفربتصير اتنين ناقص واحد ناقص الهي واحد ناقص
واحد صح؟ لو تصير اتنين ناقص اتنين بتصير zero هذي
zero و zero طيب فهيصير عندي واحد و صفراللي هي هان
ماخدة من صفر صفر هان اللي هي الواحد تمام؟ والاخيرة
اللي هي واحد واحد بتكون ايش؟ اتنين نقص صفر .. ايوة
بتطلع انه صفر وصفر .. لأ خليكم مرة اتنين نقص واحد
نقص واحد واتكي صفر ماشي؟ وهدي واحد دي صفر واحد
okay فبصير عندك انه واحد واحد هان هياخد قيمته من
ايش؟ من ..
مرة تانية .. مرة تانية
مرة تاني جايين اللي هتقولولي طيب صفر صفر هتصير
قداش نين نقص صفر ادي قداش تطلع نين نقص صفر نقص
واحد ادي واحد واحد و صفر و ادي واحد و صفر هيها ادي
واحد و صفر صح فبدأ تيجي الاتنين هنا مظبوط طيب و
صفر واحد برضه تصير واحد اه هي صفر واحد صحOkay
طلتناها اه صح واحد اللي هان هتاخد من واخد واحد
اللي هان فهيصير هذه اربع يبقى زي اللي قلتلكوا انا
اول اه صح يبقى انا طلعت صح ماشي واحد و صفر هتصير
عندك صفر و صفر هتفهم ما فويها هذه بدأت تصير صفر و
صفرطبعا؟ و الأخير هتصير ايش؟ عنا صفر و واحد صفر
واحد هي بتصير هذا ماشي؟ طبعا لو كان عنا أكتر من
عمود هتلاقي اللي عمود اللي بعد الأخير إيجا اللي
بعد التاني و اللي التالت ورا التالت و هكذا يعني
ماشي؟
طيب، هاي في عندك الاربع أشكال اللي هو ال
reflection المرة الجاية بنبدأ احنا نشوف ال
addition و ال subtraction مافيش وقت، في محاضرة، مش
عارفة، محتاجين ال .. طيب، يعطيكوا العافية