در قسمت سوم از مجموعه آموزشی پردازش تصویر در پایتون با اینکه چگونه با منبع ویدئویی کار کنیم آشنا شدیم. در نهایت هم توانستیم با استفاده از وبکم فیلمی را ضبط کنیم و همان فیلم را با فرمت و ابعاد دلخواه در محل پروژه ذخیره کنیم. اما در این قسمت قصد داریم به ترسیم بر روی ویدئو بپردازیم.
پس در این قسمت نیز با ویدئو سر و کار خواهیم داشت. میخواهیم تغییرات سادهای را بر روی ویدئویی که از وبکم ضبط میکنیم، انجام بدهیم.
ترسیم بر روی ویدئو که در ادامه دستورات آن را خواهیم نوشت، شامل یک خط و یک مستطیل خواهد بود.
نحوهی کار به این صورت است که ابتدا مانند جلسه قبل ویدئو را از وبکم ضبط میکنیم و سپس با استفاده از دستور line از کتابخانه OpenCV مشخص میکنیم که خط در کجای تصویر، با چه رنگ و با چه ضخامتی ترسیم شود. در اینجا ما رنگ سبز و ضخامت 10 را انتخاب کردیم.
همچنین با استفاده از دستور rectangle از کتابخانه OpenCV میتوانیم با دادن مختصات دو نقطه یک مستطیل بر روی تصویر رسم کنیم. رنگ و ضخامت مستطیل رسم شده بر روی تصویر نیز قابل انتخاب است. در اینجا ما رنگ قرمز و ضخامت 5 را انتخاب کردیم.
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) while(True): ret, frame = cap.read() #frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.line(frame, (100, 200), (200, 400), (0, 255, 0), 10) cv2.rectangle(frame, (100, 200), (200, 300), (0, 0, 255), 5) cv2.imshow('webcam', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() |
پس از نوشتن کد بالا اگر برنامه را اجرا کنیم، وبکم باز شده و شروع به ضبط کردن فیلم میکند. و یک خط سبز رنگ و یک مستطیل به رنگ قرمز بر روی تصویر ایجاد خواهد شد.
در نهایت تصویر زیر برای ما قابل مشاهده خواهد یود: