در قسمت دوم از مجموعه آموزشی پردازش تصویر در پایتون با نحوهی ایجاد خط روی تصویر و مشخص کردن محل آن خط آشنا شدیم. همچنین در نهایت تصویر را در محل پروژه ذخیره کردیم. اما در این قسمت قصد داریم به نمایش و ذخیره ویدئو بپردازیم.
در این قست در رابطه با اینکه چگونه از یک منبع ویدئویی استفاده کنیم، چگونه میتوانیم از وبکم ضبط کنیم و همچنین ویدئوی ضبط شده را ذخیره کنیم، و اینکه این عملیات چه تفاوتی با کار بر روی تصویر خواهد داشت، صحبت خواهیم کرد.
از آنجایی که ویدئو شامل چندین عکس پشت سرهم میباشد، اگر قرار باشد تغییری را روی ویدئو ایجاد کنیم، مثلا یک نوشته روی ویدئو بنویسیم باید این کار را با یک توالی و پشت سرهم روی عکسهای که ویدئو را تشکیل میدهند انجام بدهیم. پس طبق دانش برنامهنویسی میدانیم که نیاز به یک حلقه داریم. ما یک حلقه while تعریف میکنیم، و در این حلقه ابتدا ویدئو را خوانده و در frame ذخیره میکنیم. با هر بار اجرا شدن دستور مربوطه یک فریم به وجود میآید، که مجوع این فریمها یک ویدئو را تشکیل میدهند. پس از انجام این مراحل میتوانیم ویدئو یا همان فریمها را با فرمت رنگی دلخواه به نمایش بگذاریم.
همچنین تعریف میکنیم که اگر کلیدی زده شد فیلمی که از وبکم ضبط میشود و در حال نمایش است متوقف شود. تعریف این کلید هم دلخواه میباشد و با استفاده از یک دستور شرطی انجام میشود.
در نهایت هم ویدئوی ضبط شده را ذخیره میکنیم. این امکان وجود دارد که ابعاد و سرعت فریمها را نیز تعیین کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import cv2 import numpy as np cap = cv2.VideoCapture(0) fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.avi', fourcc, 24.0, (640, 480)) while(True): ret, frame = cap.read() color = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) out.write(frame) cv2.imshow('webcam', color) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() out.release() cv2.destroyAllWindows() |
پس از اجرای برنامه یک پنجره مشابه زیر به ما نمایش داده خواهد شد:
سلام. ممنون بابت اموزش خیلی خیلی باحالی که گذاشتید.
آقای اسلامی اموزش هاشون حرف نداره.
فقط در کدی که قرار دادید در خط 6 لطفا فریم را به 24 تغییر بدید، یه اشتباه کوچیک رخ داده و 240 در ثانیه شده که خیلی سرعت بالایی هست و باید 24 فریم در ثانیه که سرعت عادی هست قرار داده بشه. چون خود اقای اسلامی هم 24 ثانیه گذاشتند.
تشکر از این اموزش درجه 1 .
سپاس
سلام دوست عزیز
متشکر از توجه شما 🙂
بله اصلاح میکنیم حتما
سلام وعرض ادب
ممنون بابت آموزش خوبتون. ترس از یادگیری open cv برای من از رفت و به این موضوع علاقه مند شدم.
سپاس از زحمات شما
سلام و عرض ادب و خداقوت
واقعا ممنونم بابت آموزش های فوق العاده با کیفیت و جذابتون انصافا خیلی استفاده کردم و ان شاءالله تا آخر آموزش رو هم دنبال میکنم.
آرزوی موفقیت های روز افزون و سلامتی رو برای شما و همکارانتون در سیسوگ دارم.
سلام نازنینم. سپاس بابت نظر مثبتتان و خوشحالیم که استفاده لازم را بردهاید.