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

السؤال

Recommended Posts

  • 1
نشر

تقوم بإيقاف تنفيذ الكود لمدة زمنية معين تقدر بالميلي ثانية وتوضع بين قوسين بالشكل(). أي في حال قمت بكتابة:

import cv2 as cv
I=cv.imread("rose.jpg")
cv.imshow(“imag”,I)
cv2.waitKey(1000)
# statment1
# statment2
.
.
.
# statmentn

فهذا يعني أن الصورة سيتم عرضها في نافذة منبثقة وسيتوقف تنفيذ باقي تعليمات الكود لمدة 1000 ميلي ثانية، وبعد انقضاء المدة يستكمل بايثون في تنفيذ باقي التعليمات (لكن الصورة تبقى معروضة في النافذة المنبثقة ولاتحاول إغلاقها لأنك إن قمت بذلك سوف ينهار البرنامج) ولجعلها تختفي لابد من إضافة التعليمة cv2.destroyAllWindows بعدها مباشرةً. أما في حال كانت القيمة الممررة أصغر أو تساوي 0 عندها سوف يتم عرض الصورة وبعد عرضها سوف يتم إيقاف تنفيذ الكود إلى ما لانهاية، ويتم استكمال تنفيذ الكود عند قيامك بالضغط على زر معين (وأيضاً هنا ستبقى الصورة في النافذة مالم تكن التعليمة التالية هي destroyAllWindows ). كما يجب أن تعلم أنه إذا لم تقم باستخدام التعليمة ()cv2.waitKey لن يتم إظهار الصورة.
وفي حالة أردت استخدامه مع الفيديو فأنصحك بالاطلاع على السؤال التالي:

  • 1
نشر (معدل)

تستخدم الدالة cv2.waitKey كأنها مؤقت ، بحيث تقوم بادخال الوقت الذي تريد أن تنتظره الدالة (بالمللي ثانية) بحيث يقوم البرنامج خلال تلك المدة بعمله على الصور او الفيديوهات ثم بعد انتهاء الوقت يقوم بعمل شئ أخر، الكود التالي مثال على هذا:

import cv2
import time

img = cv2.imread("flowers.jpg")
cv2.imshow("Flowers",img)
initial_time = time.time()
cv2.waitKey(3000)
final_time = time.time()
print("Window is closed after",(final_time-initial_time))

ويكون الخرج تلك الصورة مع الوقت الذي أخذته الصوره وهي 3 ثوان:

flowers.jpg.5d4fb66f06dae450fbbc7bf55daf60c3.jpg

Window is closed after 3.0099525451660156

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

#استدعاء الدالة
import cv2 as cv
#قراءة الصورة
imageread = cv.imread('C:/Users/admin/Desktop/images/test.jpg')
#انتظار الحدث
cv.imshow('Image', imageread)
cv.waitKey(0)
cv.destroyAllWindows()

 

تم التعديل في بواسطة Ahmed Sharshar

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...