استفاده از وبکم در OpenCV

 نحوه فعال سازی و استفاده از وبکم در  opencv

به وسیله تابع ()VideoCapture وبکم را راه اندازی می کنیم که خروجی آن یک شی (object)  می باشد که در اینجا آن را در متغیر cap قرار داده ایم.

این شئ یک متد به نام ()read دارد که با فراخوانی آن وبکم فعال می شود و شروع به دریافت فریم ها از وبکم می‌کند.

خروجی تابع ()read نوع داده ای tuple در پایتون است که در اینجا آن را در متغیرهای frame و ret ذخیره کرده ایم.

frame همان تصاویر دریافتی از وبکم است و چیزی که در ret ذخیره شده یک boolean است که نشان می دهد که آیا عملیات موفق آمیز بوده یا نه.

به وسیله تابع ()cap.release هم می توان وبکم را آزاد کرده و در نتیجه وبکم خاموش می‌شود.

به کد زیر دقت کنید:

قاعدتا میتوان روی تصاویری که از وبکم دریافت میکنیم قبل از نمایش تغییراتی ایجاد کنیم. به دو مثال زیر دقت کنید.

مثال 1) نمایش در وبکم به صورت آینه ای یا برعکس (flip)

یادآوری:

تصویر اصلی

چرخش عمودی یا Vertical Flip

چرخش افقی یا Horizontal Flip

برای flip کردن تصاویر دریافتی از وبکم از تابع ()cv2.flip استفاده می کنیم که آرگومان اول تصاویر دریافتی است و آرگومان دوم نوع flip را مشخص می کند به این صورت که:

  • اگر صفر باشد: به صورت عمودی تصاویر را flip می کند.
  • اگر مثبت باشد:به صورت افقی تصاویر را flip می کند.
  • اگر منفی باشد:به صورت هم عمودی و هم افقی تصاویر را flip می کند.

 

مثال 2) نمایش تک کاناله با وبکم

در این کد ابتدا به اندازه طول و عرض فریم یک ماتریس با مقادیر صفر می سازیم سپس هر کانال رنگی که از وبکم دریافت می شود را جدا می کنیم و در نهایت هر کانال را به صورت جداگانه نمایش می دهیم؛ به این صورت که با تابع ()cv2.merge فقط همان کانال رنگی و به جای دو کانال دیگر همان ماتریس صفری که ساخته بودیم را به عنوان ورودی می دهیم.