رسالة الخطأ تشير إلى أن وضع الصورة غير معترف به أو غير مدعوم بواسطة مكتبة PIL (Python Imaging Library). في هذه الحالة ، الوضع '1' ليس وضعًا صالحًا لفتح صورة باستخدام الأمر Image.open ().
لحل هذه المشكلة ، يجب عليك تحديد وضع صالح للصورة عند فتحها. على سبيل المثال ، يمكنك استخدام الوضع 'r' لقراءة الملف في وضع البايتات الثنائية binary و 'RGB' لفتح صورة ملونة:
from PIL import Image
im = Image.open('C:/Users/titanic/Desktop/photo/50.jpg').convert('RGB')
في المثال أعلاه ، تم استخدام الأمر convert() لتحويل الصورة إلى الوضع 'RGB' ، وهو وضع الألوان الصالح المدعوم بواسطة مكتبة PIL.
وبالنسبة للكود الخاص بك،
الخطأ في الكود هو أنه يتم استخدام cv2.IMREAD_COLOR مع Image.open من مكتبة PIL ، والتي لا يدعمها. يمكن حل هذه المشكلة عن طريق تحميل الصورة مع مكتبة PIL فقط عن طريق تعيين مسار الصورة كمعامل لـ Image.open. هنا هو الكود الصحيح:
from PIL import Image
from PIL import ImageStat
im = Image.open('C:/Users/titanic/Desktop/photo/50.jpg')
stat = ImageStat.Stat(im)
avg = stat.mean()
total = sum(avg)
red_percentage = avg[0]/total * 100
green_percentage = avg[1]/total * 100
blue_percentage = avg[2]/total * 100
print("Red: %f%%, Green: %f%%, Blue: %f%%" % (red_percentage, green_percentage, blue_percentage))
بالإضافة إلى ذلك ، الكود يعاني من مشكلة في استخدام avg، لأنه لم يتم استدعاء الدالة. يمكن حل هذه المشكلة بإضافة "()" بعد stat.mean، كما تلاحظين في الكود.