کار با تصویر در OpenCV ; خواندن تصویر

بازدید: 830 بازدید

اول از این که کار با تصویر در OpenCV رو شروع کنیم، باید بدونیم که خود تصویر ، چه نوع داده ای هستش. کامپیوتر یک تصویر رو به چه صورت میبینه؟ برای رسیدن به این جواب، زیاد فلسفی حرف نمیزنیم. یه پوشه توی یه درایو ایجاد کنید و یه تصویر به این پوشه منتقل کنید .اسم فایل رو میزاریم avalin.jpg. خوب حالا مسیر پوشه رو توی cmd باز کنین :

 

opencv-python-p30script.com (1)
کار با تصویر در OpenCV

حالا توی CMD تایپ کنید python و Enter رو بزنید. اگه خوش شانس باشین و مشکلی پیش نیاد،متنی مثل تصویر زیر رو میبینین :

 

opencv-python-p30script.com (1)
کار با تصویر در OpenCV

 

حالا باید کتابخانه OpenCV رو فراخوانی کنیم . برای این کار هم توی ادامه کار تایپ میکنید import cv2. اگه طبق آموزش موجود در پست “نصب و راه اندازی OpenCV برای Python در windows 10” عمل کرده باشید، با خطایی روبرو نمیشید.

حالا باید فایل رو از ورودی بخونیم. برای این منظور از تابع imread استفاده میکنید :

img = cv2.imread(‘D:/P30Script/opencv/02/avalin.jpg’)

توجه داشته باشید که باید قبل از imread از cv2 استفاده کنیم تا مشخص بشه صاحب این تابع کیه،الکی نیست که هرکی بیاد از ورودی یچی برا خودش بخونه. نکته بعد این که متاسفانه ما توی ویندوز داریم کار میکنیم پس باید مسیر کامل فایل رو بدیم. حالا با استفاده از type نوع فایل تصویر رو مشخص میکنیم :

 

opencv-python-p30script.com (1)

خوب به سلامتی مشخص شد که فایل تصویر ما در اصل یه آرایه هستش که ادای تصویری در میاره! خوب ثابت کردیم که نیاز به numpy داریم :|.

 

چگونه در OpenCV+Python تصویر را بخوانیم و ذخیره کنیم؟

حالا متوجه نوع فایل شدیم دیگه وقتشه که کار با اون رو شروع کنیم. خوب برای این کار یک فایل به نام avalin-opcv.py بسازین و بعد به وسیله محیط برنامه نویسی مورد علاقه خودتون بازش کنین. ما که از VSCode استفاده میکنیم. فایل رو ذخیره کنید. فایل همونجایی قرار داره که تصویرمونو آپلود کرده بودیم : avalin.jpg . حالا قطعه کد زیر روی توی فایل پایتونتون بنویسین و بعد اجرا بگیرینش:

import numpy as np
import cv2
img0 = cv2.imread('D:/P30Script/opencv/02/avalin.jpg',0)
img1 = cv2.imread('D:/P30Script/opencv/02/avalin.jpg',1)
img2 = cv2.imread('D:/P30Script/opencv/02/avalin.jpg',-1)
cv2.imshow('image0',img0)
cv2.imshow('image1',img1)
cv2.imshow('image-1',img2)
cv2.waitKey(0)

 

دو خط اول که میشه فراخوانی کتابخانه های numpy و OpenCV. توی خط سوم فایل رو از منبع میخونیم اما به یه تفاوت از کد قبلی داریم اون هم خوندن تصویر به صورت سیاه و سفید هستش. تابع imread سه حالت خوندن تصویر داره:

 

  • cv2.IMREAD_COLOR : Loads a color image. Any transparency of image will be neglected. It is the default flag.
  • cv2.IMREAD_GRAYSCALE : Loads image in grayscale mode
  • cv2.IMREAD_UNCHANGED : Loads image as such including alpha channel

 

خاکستری، رنگی و بدون تغییر که این سه حالت با قرار دادن اعداد 0، 1 و -1 به ترتیب قابل استفاده هستند . خروجی کد بالا، سه تصویر خواهد بود .

 

opencv-python-p30script.com (1)
کار با تصویر در OpenCV

 

چگونه با opencv دوربین یا وب کم را فراخوانی کنیم؟

 

کد زیر را در یک فایل python قرار داده و ران کنید :

import cv2

cap=cv2.VideoCapture(0)

if not cap.isOpened():
raise IOError("webcam baz nemishe")

while True:
rat,frame=cap.read()
frame=cv2.resize(frame,None,fx=1.0,fy=1.0,interpolation=cv2.INTER_AREA)
#def resize(src, dsize, dst, fx, fy, interpolation)
cv2.imshow('input',frame)

c=cv2.waitKey(1)
print(c)
if c==27:
break

cap.release()
cap.destroyAllWindows()

نتیجه کد :

 

 

 

این قسمت واسه اونایی بود که عجله دارن یهو میخوان بزنن آخر سریال رو ببینند. در ادامه بیشتر با تصاویر کار خواهیم کرد، با ما همراه باشید ;).

ادامه مطلب