كيفية استخدام وسادة لأداء الصورة في الرسم على الصورة؟

Nov 10, 2025

ترك رسالة

يعد رسم الصور تقنية قوية في مجال معالجة الصور، والتي تهدف إلى ملء الأجزاء المفقودة أو التالفة من الصورة بسلاسة. يمكن استخدام Pillow، وهي مكتبة بايثون معروفة لمعالجة الصور، بشكل فعال في رسم الصور. كمورد للوسائد، يسعدني أن أشارككم كيفية استخدام الوسادة لهذا الغرض.

فهم صورة Inpainting

قبل الغوص في التنفيذ، من الضروري أن نفهم ما هي الصورة inpainting. يتم استخدام رسم الصور في سيناريوهات مختلفة، مثل إزالة الكائنات غير المرغوب فيها من الصورة، أو استعادة الصور القديمة والتالفة، أو ملء المناطق المحجوبة بالنص أو العناصر الأخرى. الهدف هو جعل المنطقة المطلية تمتزج مع وحدات البكسل المحيطة بحيث تبدو الصورة النهائية طبيعية.

المتطلبات الأساسية

للبدء في استخدام Pillow لرسم الصور، يجب أن يكون لديك Python مثبتًا على نظامك. يمكنك بعد ذلك تثبيت الوسادة باستخدامنقطة:

وسادة تثبيت النقطة

تحميل الصورة ومعالجتها مسبقًا

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

from PIL import Image # قم بتحميل الصورة image_path = 'your_image.jpg' image = Image.open(image_path) # قم بتحويل الصورة إلى وضع RGB إذا لم تكن موجودة بالفعل if image.mode != 'RGB': image = image.convert('RGB')

في هذا الكود نقوم أولا باستيراد ملفصورةوحدة من وسادة. ثم نفتح الصورة باستخداميفتحطريقة. من الممارسات الجيدة تحويل الصورة إلى وضع RGB، حيث قد تتطلب بعض العمليات ذلك.

تحديد منطقة الطلاء

لإجراء عملية الطلاء، نحتاج إلى تحديد المنطقة التي نريد ملئها في الصورة. يمكن القيام بذلك عن طريق إنشاء قناع ثنائي حيث يتم ضبط وحدات البكسل الموجودة في المنطقة المراد طلاءها على 255 (أبيض)، ويتم ضبط الباقي على 0 (أسود).

import numpy as np # إنشاء قناع فارغ بنفس حجم قناع الصورة = Image.new('L', image.size, 0) # تحديد المنطقة المراد رسمها (على سبيل المثال، مستطيل) x1, y1, x2, y2 = 100, 100, 200, 200 draw = ImageDraw.Draw(mask) draw.rectangle((x1, y1, x2, y2)، ملء = 255)

في هذا الكود، نقوم أولاً بإنشاء صورة جديدة ذات تدرج رمادي (الوضع = 'L') بنفس حجم الصورة الأصلية واملأها بـ 0. ثم نستخدمرسم الصورةوحدة لرسم مستطيل على القناع، والذي يمثل المنطقة المراد طلاؤها.

تقنية Inpainting البسيطة: متوسط ​​عدد البكسلات المجاورة

إحدى أبسط تقنيات الرسم هي ملء المساحة المطلية باللون المتوسط ​​لوحدات البكسل المجاورة. إليك كيفية تنفيذ ذلك باستخدام الوسادة:

from PIL import ImageDraw # تحويل الصورة والقناع إلى مصفوفات numpy image_array = np.array(image) Mask_array = np.array(mask) # احصل على إحداثيات المنطقة المرسومة inpaint_coords = np.where(mask_array == 255) # قم بالتكرار فوق المنطقة المرسومة لـ x, y في zip(*inpaint_coords): # احصل على وحدات البكسل المجاورة = الجيران = [] لـ dx في [-1، 0، 1]: لـ dy في [-1، 0، 1]: إذا كان dx == 0 و dy == 0: تابع nx، ny = x + dx، y + dy إذا كان 0 <= nx < image_array.shape[0] و 0 <= ny < image_array.shape[1] وmask_array[nx, ny] == 0: Neighbours.append(image_array[nx, ny]) # احسب متوسط ​​لون الجيران إذا كان الجيران: Average_color = np.mean(neighbors, axis = 0).astype(int) image_array[x, y] = Average_color # تحويل المصفوفة numpy مرة أخرى إلى صورة in Painted_image = Image.fromarray(image_array)

في هذا الكود، نقوم أولاً بتحويل الصورة والقناع إلى مصفوفات numpy. ثم نجد إحداثيات المنطقة المرسومة باستخدامnp.where. لكل بكسل في المنطقة المطلية، نجد وحدات البكسل المجاورة لها والتي ليست في المنطقة المطلية. نحن نحسب متوسط ​​​​لون هؤلاء الجيران ونضبط لون البكسل الملون على هذا اللون المتوسط. وأخيرًا، نقوم بتحويل المصفوفة numpy مرة أخرى إلى صورة.

الرسم المتقدم بالوسادة والمكتبات الأخرى

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

Memory Foam PillowHousehold Pillow

from skimage.restoration import inpaint import numpy as np # تحويل الصورة والقناع إلى مصفوفات numpy image_array = np.array(image) قناع_array = np.array(mask) # تنفيذ inpainting باستخدام طريقة المسيرة السريعة in Painted_array = inpaint.inpaint_fmm(image_array, Mask_array) # تحويل المصفوفة numpy مرة أخرى إلى صورة in Painted_image = Image.fromarray((in Painted_array * 255).astype(np.uint8))

في هذا الكود نستخدمinpaint_fmmوظيفة منسيكيت - الصورةلأداء inpainting. تستخدم هذه الوظيفة طريقة السير السريع لملء المنطقة المطلية. بعد الطلاء، نقوم بتحويل المصفوفة numpy مرة أخرى إلى صورة.

حفظ الصورة المرسومة

بمجرد حصولك على الصورة المرسومة، يمكنك حفظها في ملف.

# احفظ الصورة المرسومة Output_path = 'in Painted_image.jpg' in Painted_image.save(output_path)

يحفظ هذا الرمز الصورة المرسومة في مسار الملف المحدد.

تطبيقات رسم الصور بالوسادة

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

منتجاتنا من الوسائد

باعتبارنا موردًا للوسائد، فإننا لا نقدم فقط المعرفة باستخدام الوسادة في طلاء الصور ولكننا نقدم أيضًا مجموعة متنوعة من الجودة العاليةوسادة منزليةووسادة رغوة الذاكرة. تم تصميم وسائدنا المنزلية لتوفير أقصى قدر من الراحة أثناء النوم، بينما تتوافق وسائد الإسفنج الذكي لدينا مع شكل رأسك ورقبتك، مما يقلل من نقاط الضغط ويعزز النوم بشكل أفضل.

تواصل معنا للشراء والتعاون

إذا كنت مهتمًا بمنتجات الوسائد الخاصة بنا أو لديك أي أسئلة حول استخدام الوسادة لرسم الصور، فنحن نرحب بك للاتصال بنا للشراء والتعاون. نحن ملتزمون بتزويدك بأفضل المنتجات والخدمات.

مراجع

  • وسادة الوثائق الرسمية
  • Scikit - توثيق الصور
  • كتب معالجة الصور حول خوارزميات رسم الصور

إرسال التحقيق