اذهب إلى المحتوى

السؤال

نشر

لدي مجموعة صور ملونة وأريد تحويل كلًا منها إلى صور بالأبيض والأسود، وليس صور رمادية grayscale (أي أن كل بيكسل سيكون إما أبيض تمامًا أو أسود تمامًا).

كيف يتم هذا الأمر عبر مكتبة PIL في بايثون Python؟

Recommended Posts

  • 1
نشر

هناك عدة طرق للقيام بذلك.

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

 

الطريقة الثانية الأسرع، هي استعمال توابع PIL الجاهزة للتحويل مباشرة بالشكل التالي:

from PIL import Image

file = "example.jpg"
img = Image.open(file)

img.convert("1")
img.show()

حيث أن ال 1 هنا يمثل التمثيل باستعمال بت واحد فقط، و هذا مكافئ للتحويل إلى 0 و 1 فقط.

  • 1
نشر

يمكن استخدام الدالة convert وتمرير لها 1 (أي نمط أبيض أسود) وبذلك ستعمل على تحويل الصورة للقيمتين 0 و 1 حسب عتبة معينة )ستكون الصورة الناتجة غير واضحة / دقيقة)

from PIL import Image

file = "C://Users/ABC/20.jpg"
img = Image.open(file)

img.convert("1")
img.show()

 

  • 0
نشر

 تتميز مكتبة PIL بوظيفة تسمى ImageOps ، والتي توفر طرقًا مختلفة يمكن أن تساعدنا في تعديل الصورة. نجد من بينها هذه الطرق Grayscale و التي تقوم بتحويل صورة ملونة إلى اللون الرمادي.

  • مثلا لتحويل الصورة التالية: test.jpg.54730ebdf8e6fcd8f5cf0f8c71c1665b.jpg
  • نقوم بالأمر التالي:
from PIL import Image, ImageOps

# قراءة الصورة  و اظهارها
test = Image.open("./test.jpg")
test.show()

gray_image = ImageOps.grayscale(test)  # تطبيق الوظيفة  لتحويل الصورة الى اللون الرمادي
gray_image.save('gray_image.png')          #حفظ الصورة
gray_image.show()                          #عرض الصورة
  • نتحصل على الصورة الرمادية :gray_image.png.781580a91f8f8c6eb82494f261d0e15b.png

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...