مقدمهای بر OpenCV
نصب OpenCV-Python در اوبونتو
اهداف#
در این آموزش یاد خواهیم گرفت که چگونه OpenCV-Python را در سیستمعامل اوبونتو (Ubuntu) راهاندازی کنیم. مراحل زیر برای اوبونتو 16.04 و 18.04 (هر دو نگارش ۶۴ بیتی) آزمایش شدهاند.
کتابخانه OpenCV-Python را میتوان به دو روش در اوبونتو نصب کرد:
- نصب از طریق باینریهای از پیش ساختهشده موجود در مخازن اوبونتو
- کامپایل از روی سورس کد (Source). در این بخش، هر دو روش را بررسی خواهیم کرد.
نکته مهم دیگر، کتابخانههای اضافی مورد نیاز است. کتابخانه OpenCV-Python تنها به Numpy نیاز دارد (علاوه بر سایر وابستگیها که بعداً خواهیم دید). اما در این آموزشها، از Matplotlib نیز برای رسم آسان و زیبای نمودارها استفاده میکنیم (که از نظر من بسیار بهتر از ابزارهای OpenCV عمل میکند). استفاده از Matplotlib اختیاری است، اما اکیداً توصیه میشود. مشابهاً، با IPython (یک ترمینال تعاملی پایتون) نیز آشنا خواهیم شد که آن نیز بسیار توصیه میشود.
نصب OpenCV-Python از باینریهای از پیش ساختهشده#
این روش برای مواقعی که صرفاً قصد برنامهنویسی و توسعه کاربردهای OpenCV را دارید بهترین گزینه است.
بسته python3-opencv را با دستور زیر در ترمینال (با دسترسی کاربر ریشه / root) نصب کنید:
$ sudo apt-get install python3-opencv
محیط Python IDLE (یا IPython) را باز کرده و کدهای زیر را در ترمینال پایتون وارد نمایید:
import cv2 as cv
print(cv.__version__)
اگر نتایج بدون هیچ خطایی چاپ شوند، تبریک میگوییم !!! شما OpenCV-Python را با موفقیت نصب کردهاید.
این روش بسیار آسان است. اما یک ایراد دارد: مخازن Apt ممکن است همیشه حاوی آخرین نسخه OpenCV نباشند. به عنوان مثال، در زمان نگارش این آموزش، مخزن apt نسخه 2.4.8 را ارائه میدهد در حالی که آخرین نسخه OpenCV نسخه 3.x است. از نظر API پایتون، آخرین نسخه همواره پشتیبانی بسیار بهتر و جدیدترین رفع خطاها را به همراه دارد.
بنابراین برای دستیابی به آخرین سورس کدها، روش بعدی ترجیح داده میشود، یعنی کامپایل از سورس کد. همچنین اگر در آینده قصد مشارکت در توسعه OpenCV را داشته باشید، به این روش نیاز خواهید داشت.
بیلد و کامپایل OpenCV از سورس کد#
کامپایل از سورس ممکن است در ابتدا کمی پیچیده به نظر برسد، اما به محض اینکه یک بار موفق شوید، دیگر هیچ چیز پیچیدهای در آن نخواهد بود.
ابتدا برخی وابستگیها را نصب خواهیم کرد. برخی از آنها الزامی و برخی اختیاری هستند. در صورت عدم تمایل میتوانید وابستگیهای اختیاری را نادیده بگیرید.
وابستگیهای الزامی بیلد#
ما به CMake برای پیکربندی نصب، GCC برای کامپایل، و Python-devel و Numpy برای ساخت اتصالات پایتون و غیره نیاز داریم.
sudo apt-get install cmake
sudo apt-get install gcc g++
برای پشتیبانی از python3:
sudo apt-get install python3-dev python3-numpy
سپس به پشتیبانی از GTK برای قابلیتهای رابط کاربری گرافیکی، پشتیبانی از دوربین (v4l)، پشتیبانی از چندرسانهای (ffmpeg, gstreamer) و غیره نیاز داریم.
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
برای پشتیبانی از gtk2:
sudo apt-get install libgtk2.0-dev
برای پشتیبانی از gtk3:
sudo apt-get install libgtk-3-dev
وابستگیهای اختیاری#
وابستگیهای فوق برای نصب OpenCV در دستگاه اوبونتوی شما کافی هستند. اما بسته به نیازهای خود ممکن است به برخی وابستگیهای اضافی نیاز داشته باشید. فهرستی از این وابستگیهای اختیاری در زیر آمده است. میتوانید آنها را رها کرده یا نصب کنید، تصمیم با شماست :)
کتابخانه OpenCV به همراه فایلهای پشتیبانی برای فرمتهای تصویری مانند PNG، JPEG، JPEG2000، TIFF، WebP و غیره عرضه میشود. اما ممکن است کمی قدیمی باشند. اگر میخواهید جدیدترین کتابخانهها را داشته باشید، میتوانید فایلهای توسعه کتابخانههای سیستمی این فرمتها را نصب کنید.
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev
دریافت OpenCV#
برای دانلود آخرین سورس کد از مخزن گیتهاب OpenCV: (اگر میخواهید در توسعه OpenCV مشارکت کنید این گزینه را انتخاب نمایید. برای این کار ابتدا باید Git را نصب کنید)
$ sudo apt-get install git
$ git clone https://github.com/opencv/opencv.git
این دستور پوشهای به نام "opencv" در دایرکتوری جاری ایجاد میکند. عملیات کلون کردن بسته به سرعت اتصال اینترنت شما ممکن است مدتی طول بکشد.
اکنون یک پنجره ترمینال باز کرده و به پوشه دانلودشده "opencv" بروید. یک پوشه جدید به نام "build" ایجاد کرده و وارد آن شوید.
$ mkdir build
$ cd build
پیکربندی و نصب#
اکنون که تمام وابستگیهای مورد نیاز را در اختیار داریم، بیایید OpenCV را نصب کنیم. نصب باید با CMake پیکربندی شود. این ابزار مشخص میکند کدام ماژولها باید نصب شوند، مسیر نصب کجاست، از چه کتابخانههای اضافی استفاده شود، آیا مستندات و مثالها کامپایل شوند یا خیر، و غیره. بیشتر این کارها به طور خودکار با پارامترهای پیشفرض تنظیمشده انجام میگیرد.
دستور زیر معمولاً برای پیکربندی بیلد کتابخانه OpenCV استفاده میشود (از داخل پوشه build اجرا شود):
$ cmake ../
پیشفرضهای OpenCV نوع بیلد "Release" و مسیر نصب "/usr/local" را در نظر میگیرند. برای اطلاعات بیشتر در مورد گزینههای CMake به راهنمای کامپایل ++OpenCV C++ compilation guide مراجعه کنید.
شما باید خطوطی مشابه این را در خروجی CMake خود مشاهده کنید (این خطوط نشان میدهند که پایتون به درستی شناسایی شده است):
-- Python 3:
-- Interpreter: /usr/bin/python3.4 (ver 3.4.3)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
-- packages path: lib/python3.4/dist-packages
اکنون فایلها را با دستور "make" بیلد کرده و با دستور "make install" نصب نمایید.
$ make
# sudo make install
مراحل نصب به پایان رسید. تمامی فایلها در پوشه "/usr/local/" نصب شدهاند. ترمینال را باز کرده و ایمپورت "cv2" را امتحان کنید.
import cv2 as cv
print(cv.__version__)