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

ما الخطأ في الشيفرة التالية؟

Ail Ahmed

السؤال

السلام عليكم

import face_recognition
from PIL import Image , ImageDraw

david = face_recognition.load_image_file("David.png")

david_locations = face_recognition.face_locations(david)

left , top , right , bottom = david_locations

img = Image.fromarray(david)

draw = ImageDraw.Draw(img)

draw.rectangle(((left,top), (right,bottom)), outline='green' , width=5)

img.show()

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

مبدئيا، لا يظهر بالشيفرة أي خطأ. ما تحتاج التحقق منه هو: 

  • من أن مسار الصورة المسند صحيح. 
  • من ما ان كانت هنالك أي رسالة خطأ تظهر بخصوص تنفيذ الشيفرة. 
  • من أن david_locations قائمة وليست فارغة قبل استخدام القيم منها. يمكنك اضافة عبارة شرطية على سبيل if david_locations: للتحقق من وجود على الأقل وجه واحد.

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هي ده الرساله الخطا

    left , top , right , bottom = david_locations

ValueError: not enough values to unpack (expected 4, got 1)   

وكمان انا شغلت الكود اول مره تمام ما كنش فيه مشكله بعد كده ظهرات الرساله ده

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ الآن قال Ail Ahmed:

هي ده الرساله الخطا

    left , top , right , bottom = david_locations

ValueError: not enough values to unpack (expected 4, got 1)   

وكمان انا شغلت الكود اول مره تمام ما كنش فيه مشكله بعد كده ظهرات الرساله ده

 

جرب اضافة الشرط التالي: 

if len(david_locations) > 0:
    # استخدام مواقع الوجوه الأول فقط
    left, top, right, bottom = david_locations
    img = Image.fromarray(david)
    draw = ImageDraw.Draw(img)
    draw.rectangle(((left,top), (right,bottom)), outline='green' , width=5)
    img.show()
else:
    print("لا يوجد وجوه في الصورة")
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 20‏/12‏/2023 at 21:55 قال Ail Ahmed:

السلام عليكم

import face_recognition
from PIL import Image , ImageDraw

david = face_recognition.load_image_file("David.png")

david_locations = face_recognition.face_locations(david)[0]

left , top , right , bottom = david_locations

img = Image.fromarray(david)

draw = ImageDraw.Draw(img)

draw.rectangle(((left,top), (right,bottom)), outline='green' , width=5)

img.show()

 

هو مش المفروض هنا  [0] وليه 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 40 دقائق مضت قال Ail Ahmed:

هو مش المفروض هنا  [0] وليه 

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

للتأكد، يمكنك طباعة قائمة david_locations لرؤية عدد الوجوه المكتشفة ومواقعها:

print(david_locations)

وفي حال تريد رسم المربعات حول جميع الوجوه، نقوم بتعديل الكود كما يلي:

import face_recognition
from PIL import Image, ImageDraw

david = face_recognition.load_image_file("David.png")

david_locations = face_recognition.face_locations(david)

img = Image.fromarray(david)
draw = ImageDraw.Draw(img)

for location in david_locations:
    left, top, right, bottom = location
    draw.rectangle(((left, top), (right, bottom)), outline='green', width=5)

img.show()

حيث حلقة (for) للتحقق من جميع مواقع الوجوه ورسم المربعات حولها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 2 دقائق مضت قال Mustafa Suleiman:

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

للتأكد، يمكنك طباعة قائمة david_locations لرؤية عدد الوجوه المكتشفة ومواقعها:

print(david_locations)

وفي حال تريد رسم المربعات حول جميع الوجوه، نقوم بتعديل الكود كما يلي:

import face_recognition
from PIL import Image, ImageDraw

david = face_recognition.load_image_file("David.png")

david_locations = face_recognition.face_locations(david)

img = Image.fromarray(david)
draw = ImageDraw.Draw(img)

for location in david_locations:
    left, top, right, bottom = location
    draw.rectangle(((left, top), (right, bottom)), outline='green', width=5)

img.show()

حيث حلقة (for) للتحقق من جميع مواقع الوجوه ورسم المربعات حولها.

الا انا وجه واحد بس

تمام , شكرااا جداا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...