البرمجة

إنشاء هيستوغرام لصور بدون استخدام Image.histogram

بما أنك تواجه مشكلة في تحديد المسار الصحيح لمجلد الصور، فسأقدم لك بعض التوجيهات لحل هذه المشكلة بسهولة.

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

الآن، للتحديد الصحيح للمسار، يمكنك استخدام الدالة os.path.join() لدمج مسار الدليل الحالي مع اسم المجلد الذي يحتوي على الصور. في الواقع، يُفضل استخدام هذه الطريقة لضمان قابلية التشغيل على أنظمة التشغيل المختلفة.

فلنفترض أن لديك مجلد يسمى “images” على سطح المكتب، يحتوي على الصور التي تريد معالجتها. يمكنك استخدام الكود التالي لتحديد المسار بشكل صحيح:

python
import os # حدد مسار المجلد الذي يحتوي على الصور desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") images_folder = "images" path = os.path.join(desktop_path, images_folder) # استخدم الدالة loadImages لتحميل الصور imgs = loadImages(path) # عرض الصور for img in imgs: img.show()

في هذا الكود، يتم استخدام os.path.expanduser("~") للحصول على مسار سطح المكتب على أي نظام تشغيل. ثم يتم دمج هذا المسار مع اسم المجلد “images” باستخدام os.path.join() للحصول على المسار الكامل لمجلد الصور.

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

المزيد من المعلومات

بالطبع، دعني أواصل وأوضح المزيد في المقال:

بمجرد تحديد المسار الصحيح لمجلد الصور، يمكنك الآن مواصلة تطوير الكود لإنشاء الهيستوغرام لكل صورة دون استخدام دالة Image.histogram من مكتبة PIL.

لإنشاء الهيستوغرام لكل صورة، يمكنك استخدام مكتبة Matplotlib في Python، وهي أداة قوية لإنشاء الرسوم البيانية والمخططات. يتيح لك Matplotlib إنشاء هيستوغرام للبيانات بسهولة وتخصيصها وفقًا لاحتياجاتك.

إليك كيفية تعديل الكود الخاص بك لإنشاء الهيستوغرام لكل صورة باستخدام Matplotlib:

python
import os import matplotlib.pyplot as plt def createHistogram(image): # قراءة بيانات الصورة كمصفوفة image_data = np.array(image) # إنشاء هيستوغرام للقنوات اللونية (RGB) fig, ax = plt.subplots() ax.hist(image_data[:,:,0].ravel(), bins=256, color='red', alpha=0.5, label='Red') ax.hist(image_data[:,:,1].ravel(), bins=256, color='Green', alpha=0.5, label='Green') ax.hist(image_data[:,:,2].ravel(), bins=256, color='Blue', alpha=0.5, label='Blue') # إضافة تسميات للمحاور والعنوان ax.set_xlabel('Pixel Intensity') ax.set_ylabel('Frequency') ax.set_title('Histogram') ax.legend() # عرض الهيستوغرام plt.show() def loadImages(path): imagesList = os.listdir(path) loadedImages = [] for image in imagesList: img = PImage.open(os.path.join(path, image)) loadedImages.append(img) return loadedImages # تحديد مسار المجلد الذي يحتوي على الصور desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") images_folder = "images" path = os.path.join(desktop_path, images_folder) # تحميل الصور imgs = loadImages(path) # إنشاء الهيستوغرام لكل صورة for img in imgs: createHistogram(img)

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

باستخدام هذا الكود، يمكنك الآن قراءة الصور من مجلد معين وإنشاء هيستوغرام لكل صورة بدون استخدام دالة Image.histogram من مكتبة PIL. وإذا كان لديك أي أسئلة إضافية، فلا تتردد في طرحها!

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!