صفر تا صد پردازش تصویر در پایتون | اپیزود 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 را فشار دهید پنجره نمایش تصویر بسته خواهد شد.
  • برای بارگذاری ویدئو‌ نیز می‌توانید مانند کد بالا عمل کنید. ویدئو‌ را به فریم های متعددی تبدیل کنید و با حلقه فریم های تصویر را پردازش کنید.



دوستان جلسه اول نیز به پایان رسید در جلسات بعدی، اعمال تغییرات بر روی تصاویر را بررسی خواهیم کرد.

خیلی ممنون :)