عضو تیم ملی اختراعات و نوآوری ایران / علاقهمند به هوش مصنوعی، شبکه و امنیت / درتلاش برای به اشتراک گذاری دانسته ها، تجربیات و علاقه هام
صفر تا صد پردازش تصویر در پایتون | اپیزود 01
در بخش پیش تاریخچه و کاربردهای پردازش تصویر را بررسی کردیم و در این بخش با نحوه کار با تصاویر و ویدئوها آشنا خواهیمشد.
اولین قدم واردسازی بسته OpenCV و NumPy است با دستور زیر این کتابخانه را وارد میکنیم.
import cv2
import numpy as np
حالا تصویر را با استفاده از کد زیر فراخوانی میکنیم و به صورت سیاهسفید نمایش میدهیم.
image = cv2.imread('cat.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('ShowImage', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
پس از اجرای کد تا اینجا عکس موردنظر (cat.jpg)، در قالب پنجرهای با نام "ShowImage" با رنگ سیاهسفید مانند تصویر زیر نمایش داده میشود.
- در مباحث پردازش تصویر، رنگ تصویر اهمّیت چندانی ندارد و در اغلب پروژهها از تصاویر سیاهسفید استفاده میشود زیرا پردازش اینتصاویر به مراتب سریعتر از تصاویر رنگی است.
- دستور waitkey باعث میشود پنجره نمایش تصویر باز بماند تا زمانی که کلیدی توسط کاربر فشرده شود.
- دستور destroyallwindows، پس از پایان کار تمامی عملیاتهای پردازش را میبندد تا حافظهای از رایانه بی دلیل اشغال نشود.
- توجه داشتهباشید که فرمت رنگها در OpenCV، آبی سبز قرمز (BGR) است.
فرض میکنیم پردازش موردنظر ما بر روی تصویر انجام شد. برای ذخیره تصویر ثانویه، از دستور زیر استفاده میکنیم.
cv2.imwrite('changedimage.jpg', image)
اولین گام پردازش ویدئو نیز بارگذاری ویدئو است. ازآنجا که ویدئو مجموعهای از تصاویر و فریمهای متوالی است برای بارگذاری ویدیو از حلقه While، استفاده میکنیم. ویدئو میتواند تصویری باشد که وبکم رایانه شما به صورت در لحظه ظبط میکند.
کد زیر ویدئو وبکم شما را به صورت در لحظه در فریمهای سیاهسفید متعدد به نمایش میگذارد.
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
- توجه داشته باشید که در هنگام نمایش تصویر وبکم، اگر کلید q را فشار دهید پنجره نمایش تصویر بسته خواهد شد.
- برای بارگذاری ویدئو نیز میتوانید مانند کد بالا عمل کنید. ویدئو را به فریم های متعددی تبدیل کنید و با حلقه فریم های تصویر را پردازش کنید.
دوستان جلسه اول نیز به پایان رسید در جلسات بعدی، اعمال تغییرات بر روی تصاویر را بررسی خواهیم کرد.
خیلی ممنون :)
مطلبی دیگر از این انتشارات
زبان ۱
مطلبی دیگر از این انتشارات
فرصتهایی که در پایگاههای داده مشترک وجود دارد
مطلبی دیگر از این انتشارات
دادهکاوی (Data Mining) چیست و چه کاربردهایی دارد؟