کتابخانه open-cv پایتون

زمان مطالعه: 10 دقیقه ویرایش: 1401/10/14

سلام دوستان! امیدوارم حالتون خوب باشه. توی این مقاله با کتابخانه open-cv که برای پردازش تصویر در پایتون هست آشنا میشیم. با ما همراه باشید :)

 

 

اول از همه بریم سراغ توضیح و معرفی کتابخانه Open-Cv:

کتابخانه Open-Cv در واقع برای چندین زبان نوشته و توسعه داده شده است که یکی از این زبان ها، پایتون هست و درپایتون با نام Cv2 شناخته میشود. نام این کتابخنامه مخفف عبارت Open Source Computer Vision Library هست.

همونطور که از اسم این کتابخنامه مشخص هستش، به هدف مواردی همچون پردازش تصویر توسعه داده شده و در زبان پایتون جهت انجام پروژه های پردازش تصویر این کتابخانه به عنوان بهترین و دردسترس ترین کتابخانه شناخته میشه.

 


Import کردن کتابخانه Open-Cv:

برای فراخوانی  کردن کتابخانه Open-Cv از کد زیر استفاده میکنیم:

import cv2

نکته: در صورت نصب نداشتن کتابخانه Open-Cv با وارد کردن دستور زیر در محیط Terminal،open-cv را نصب کرده و بعد مرحله بالا را انجام بدین.

pip install opencv-python

 


Load کردن تصویر در کتابخانه Open-Cv:

برای Load کردن تصویر در کتابخانه Open-Cv از تابع imread استفاده میکنیم که باعث میشود تصویر موردنظر خوانده و به درون برنامه وارد شود:

img = cv2.imread(path)

یه چندتا نکته ریز در مورد Load کردن تصویر در کتابخانه Open-Cv بگم و سریع بریم سراغ مبحث بعدی میدونم خیلی وقت ندارید :)

اولین نکته این هستش که Load کردن عکس در کتابخانه Open-Cv با استفاده از تابع ()imread صورت میگیرد که درون پرانتز آن نام عکس به همراه پسوند اون نوشته میشود.

نکته بعدی نیز در این خصوص هستش که حتما باید قطعه کد مربوط به Load کردن تصویر رو در یک متغیر بریزیم که اسم متغیر میتونه هرچیزی باشه.

 


نمایش عکس در کتابخانه Open-Cv:

به منظور انجام این عمل و مشاهده تصویری که Load کردید از تابع imshow استفاده میکنیم:

cv2.imshow("title", variable)

همونطور که دارید میبینید نمایش یک تصویر Load شده در کتابخانه Open-Cv با استفاده از نابع ()imshow انجام میشود که تصویر را در یک بستر گرافیکی بسیار ساده نمایش میدهد و درون پرانتز نیز دو ورودی گرفته میشود.

  • ورودی اول: یک رشته متنی است که در واقع سرتیتر همون محیط ساده برای نمایش عکس هستش.
  • ورودی دوم: نام متغیری هستش که عکس Load شده را درون آن ریخته ایم.

 


مشخص کردن مقدار زمان نمایش تصویر در کتابخانه Open-Cv:

خب، در بخش قبل گفتیم که چطور میشه عکس Load شده رو در کتابخانه Open-Cv نمایش داد. حالا میخوایم بگیم که چطور میشه مشخص کرد این محیط گرافیکی که در اون داره عکس نمایش داده میشه، چند ثانیه باز بمونه:

 cv2.waitkey(time)

اگر درون پرانتز، مقدار 0 گذاشته شود، به این معناست که؛ تا زمانیکه کاربر آن را نبندد، عکس در حال نمایش باشد و اگر هر عددی به جز 0 زده شود به این معناست که؛ به همون مقدار عکس نمایش داده شده و پس از آن محیط نمایش عکس به طور خودکار بسته شود.

 


بستن تمامی پنجره های باز شده در کتابخانه Open-Cv:

به منظور بستن تمامی پنجره های باز شده در کتابخانه Open-Cv از تابعی به نام destroyAllWindows استفاده میشود که میتوان با استفاده از آن هر پنجره ای که باز شده را به طور کلی بست تا سیستم را درگیر نکند. به منظور این کار از قطعه کد زیر استفاده میکنیم:

cv2.destroyAllWindows()

 


ساخت فایل تصویری جدید حاوی تغییرات در کتابخانه Open-Cv:

گاهی اوقات شما بر روی یک تصویر Load شده تغیراتی داده اید که قصد دارید عکس جدید که حاوی تغییرات موردنظر هستش رو در سیستم ذخیره کنید. برای این کار از تابع زیر استفاده میشود:

cv2.imwrite("new_image_name", variable)

این تابع نیز دو ورودی می پذیرد که؛

  • ورودی اول: یک رشته متنی هستش و حاوی نام موردنظر برای عکس جدید به همراه پسوند آن میباشد.
  • ورودی دوم: نام متغیری است که عکس Load شده را درون آن ریخته بودیم.

 


resize کردن تصویر Open-Cv:

برای تغییر سایز در open-cv از تابع resize استفاده میکنیم. در پارامتر اول، عکسمون و در پارامتر دوم، به صورت یک tuple سایزی که میخواین به اون تبدیل شه رو مینویسیم:

resized_image = cv2.resize(image, (600, 188))

 

حالا برای نمایش طول و عرض تصویر، به شکل زیر عمل میکنیم:

print('Height of image:', (resized_image.shape[0]))
print('Width of image:', (resized_image.shape[1]))

 


سیاه سفید کردن تصویر:

برای اینکار از تابع cvtColor استفاده میکنیم که در پارامتر اول، تصویرمون و در پارامتر بعدی، رنگی که میخوایم به اون تبدیل بشه رو مینویسیم(در مثال زیر گفتیم از BGR به GRAY تبدیل بشه):

cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

 


رسم خط در Open-Cv پایتون:

برای اینکار از تابع line استفاده میکنیم. در پارامتر اول، تصویری که قرار روش خط کشیده بشه، در پارامتر بعدی، مختصات شروع خط به صورت تاپل، در پارامتر بعدی، مختصات پایان خط به صورت تاپل، سپس رنگ تصویر به صورت rgb و بعد از اون ضخامت تصویر رو مشخص میکنیم:

cv2.line(image, (0,0), (511,511), (255,127,0), 5)

 


رسم مستطیل در Open-Cv پایتون:

برای اینکار از تابع rectangle استفاده میکنیم. در پارامتر اول تصویر و بعد مختصات چهار راس مستطیل رو میدیم:

cv2.rectangle(image, (30, 50), (100, 150), (255, 127, 0), 5)

 


تایپ متن در Open-Cv پایتون:

cv2.putText(image, "hello world", (75,290), cv2.FONT_HERSHEY_COMPLEX, 2,(100,170,0), 3)

خب، این یک آموزش و معرفی بسیار ساده و مبتدی در مورد موارد کلی کتابخنامه Open-Cv بود که امیدواریم واستون مفید بوده باشه. در مقاله های بعدی بیشتر با open-cv آشناتون خواهیم کرد.

 

❤لایک رو بکوب و نظرت رو بهمون بگو. تا مقاله بعدی، خدانگهدار



4
user نوشته شده توسط سیدامیرحسین دولابی برنامه نویس پایتون، سی پلاس پلاس و مسلط به html, css


دیدگاه


برای ثبت دیدگاه، وارد شوید


user امین شهرابی - 1400/11/28 19:30

سلام عرض میکنم خدمت شما برنامه نویسان عزیز. تشکر میکنم از نشر این مطالب بسیار آموزنده و کارآمد، امیدوارم به کارتون ادامه بدید، کارتون عالیه! :)


سیدامیرحسین دولابی: سلام خیلی ممنون از نظر شما ❤️