فراخوانی عکس و ویرایش
عملکرد های پایه Opencv
در این بخش، ما برخی از توابع پایه و عملکرد های OpenCV را که تقریبا در هر آموزش نیاز دارید، را بررسی خواهیم کرد. فرض میکنیم شما قبلا OpenCV 3.3 یا بالاتر را با opencv_contrib برای پلتفرم خود نصب کرده اید. ما شایع ترین استفاده از هر تابع را ارائه می دهیم و پارامترهای مهم را مطابق با زمانی که لازم است مشخص می کنیم. بر طبق آموزش های گذشته شما می بایست opencv و numpy را به درستی بر روی سیستم مورد نظرتان بر اساس نیاز های پایه سیستم نصب کرده باشید.
خواندن، نوشتن و نمایش یک تصویر
در OpenCV، تابع imread برای خواندن یک تصویر استفاده می شود، ابتدا کتابخانه Opencv را در کد فراخوانی کنیم و سپس با استفاده از تابع نام برده فایل مورد نظر را فراخوانی می کنیم. سپس با استفاده از تابع imshow تصویر مورد نظر را به نمایش در می آوریم. در انتها تابع waitkey منتظر وارد کردن کلیدی برای خروجی از اجرا می ماند. به عنوان مثال:
#importing the module needed
import cv2
# reading the image with imread("image directory")
image = cv2.imread("Sample.jpg")
#for showing the image in a window use imshow("windows name",image)
cv2.imshow("image", image)
#waiting for a key stoke to exit
cv2.waitKey(0)
که در نهایت منجر به باز شدن تصویر مورد نظر می شود. تصویر نمونه: نکته: در تابع waitKey (n) از n برای انتظار میلی ثانیه استفاده می شود. هنگامی که n = 0، اعدام مکث می شود تا یک کلید فشار داده شود. این به ما امکان می دهد که تصویر را قبل از پایان دادن به برنامه ببینیم.
فاز و فیلترهای رنگ
می توانید برای اینکه تصویر را به مود های رنگی مختلف ببرید از دستور cvtColor استفاده نمایید. این دستور دو آرگومان دریافت می کند. آرگومان اول تصویر ورودی و دوم فاز رنگی که قرار است به آن تبدیل شود. از مدل های فاز رنگ در تصویر می توان به موارد زیر اشاره کرد:
cv2.COLOR_BGR2GRAY
cv2.COLOR_BGR2YCR_CB
cv2.COLOR_BGR2HSV
cv2.COLOR_BGR2LAB
#importing the module needed
import cv2
# reading the image with imread("image directory")
image = cv2.imread("Sample.jpg")
#chaning image to gray scale image
grayscale = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
#for showing the image in a window use imshow("windows name",image)
cv2.imshow("image", image)
#showing the gray scale image in another window
cv2.imshow("grayscale", grayscale)
#waiting for a key stoke
cv2.waitKey(0)
حال که با نحوه باز کردن و ایجاد تغییرات در تصویر آشنا شدیم وقت آن رسیده است تا این تغییرات را بر روی تصویر جدید ذخیره کنیم. برای این منظور از تابع imwrite می کنیم. مثال زیر نحوه ذخیره تصویر پس از ایجاد افکت تغییر رنگ بر روی تصویر را نمایش می دهد.
#importing the module needed
import cv2
# reading the image with imread("image directory")
image = cv2.imread("Sample.jpg")
#chaning image to gray scale image
grayscale = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
#showing the grayscaled image
cv2.imshow("grayscale ",grayscale )
#writing and saving the image in same directory
cv2.imwrite("grayscale.jpg", grayscale)
#waiting for a key stroke
cv2.waitKey(0)
سلام من ماژول open cv رو نصب کردم و این برنامه رو نوشتم ولی خطا می ده میگه:
Traceback (most recent call last):
File "C:/Users/Khalil A/Desktop/__pycache__/python/cv23.py", line 1, in <module>
import cv2
File "C:\Users/Khalil A/Desktop/__pycache__/python\cv2.py", line 2, in <module>
image = cv2.imread("Sample.jpg")
AttributeError: partially initialized module 'cv2' has no attribute 'imread' (most likely due to a circular import)
>>>
مشکل چیه؟
اسم کتابخونه cv و فایلی که کد رو توش نوشتید در داخل پوشه وجود داره و برای همین مطمئن نیست منظورتون دقیقا چیه
به عیچ عنوان اسم کتابخونه ها رو توی فایل های پروژتون استفاده نکنین