نصب OpenCV به همراه آشنایی با نسخه های مختلف

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 25, 2020

آشنایی با Opencv و نصب

OpenCV رایج ترین کتابخانه بینایی کامپیوتر در دنیا با 14 میلیون بار دانلود است. ویژگی های زیر در این کتابخانه آن را به یک انتخاب عالی برای ساخت برنامه های تجاری Computer Vision تبدیل می کند. اما ای مطلب تازه ای نیست. نصب این کتابخانه به انواع روش های مختلف در اینترنت وجود دارد و ما قرار است فقط به نصب های استاندارد های آن بپردازیم. اما روش نصب دستی این ماژول را نیر خواهیم گفت تا افراد پیشرفته تر نیز بتوانند از این مورد استفاده کنند. مورد مهم این مجموعه نصب بودن پایتون و pip می باشد که می توانید آموزش هر قسمت را با کلیک بر روی فسمت مشخص شده مشاهده و فرا بگیرید. اما نصب ، برای اینکه نحوه نصب برای هر سیستم عامل به طور واضح و مشخص صورتی بگیرد هر بخش را به صورت مجزا دسته بندی شده و در زیر قابل دسترس هستند.

انواع نسخه های opencv

opencv در واقع در دو نسخه ساخته شده که یکی ماژول استاندارد و دیگری ماژول contrib می باشد. تفاوت این دو در این است که ماژول های در حال توسعه قبل از اینکه به صورت رسمی در نسخه اصلی قرار گیرند ابتدا به صورت آزمایشی در این نسخه مورد تست کاربران قرار میگرد و سپس به نسخه اصلی انتقال می یابد.

headless یا desktop

در سیستم هایی که برای تست و یا به صورت دسکتاب هستند از نسخه های معمولی استفاده می شود اما زمانی که برای استفاده از این ماژول در سرور اقدام می کنید می بایست از نسخه های headless استفاده کنید.

نصب opencv در ویندوز

ساده ترین و تمیزترین روش نصب ماژول opencv بر روی ویندوز استفاده از pip می باشد که به راحتی هر چه تمام تر کار ها را برای شما انجام می دهد. در صورتی که استفاده از دستور pip را نمی دانید، به آموزش استفاده از pip مراجعه نمایید. برای نصب opencv در حقیقت 2 راه وجود دارد: 1- استفاده از pip به صورت استاندارد 2- استفاده از فایل سورس واقع در git

روش اول استفاده از pip

در این روش کافیست که دستور زیر را در cmd ویندوز وارد نمایید. اما نکته ای که مهم است، در نظر داشتن این است که می بایست برای استفاده از opencv حتما ماژول numpy را نیز نصب کنید.

pip install numpy --upgrade
#برای استفاده از نسخه اصلی و main
pip install opencv-python --upgrade
# و برای استفاده از نسخه contrib
pip install opencv-contrib-python --upgrade

برای اطمینان از اینکه آیا opencv در سیستم شما نصب شده یا نه می توانید در cmd تایپ کنید python تا مفسر آن در CLI نمایش داده شود. سپس با اضافه کردن ماژول با استفاده از import opencv در صورت نگرفتن هشدار و یا خطا می توانید مطمئن شوید که نصب شده است و در صورتی که می خواهید ورژن نسخه نصب شده را ببینید از دستور print(cv2.__version__) استفاده نمایید.

C:\> python
>>> import cv2
>>> print(cv2.__version__)
'4.2.0' # your version may be a newer one

روش دوم استفاده از git و cmaker

همچنین می توانید این ماژول را از دایرکتوری اصلی آن در git نیز نصب کنید که در این روش پروسه انجام آن به صورت متفاوت تر و بیشتر دستی انجام می پذیرد. و می بایست از cmaker برای این کار استفاده کرد. (پروسه نصب آن به زودی پس از تست قرار خواهد گرفت)

نصب opencv بر روی سیستم عامل لینوکس و raspberry

برای نصب ماژول opencv در سیستم عامل لینوکس راه های متفاوتی وجود دارد اما راحت ترین و ساده ترین روش نصب استفاده از pip است. روش های نصب opencv در لینوکس: 1- استفاده از pip 2- استفاده از apt 3- استفاده از سورس git و Cmake

روش اول PIP

در این روش کافیست که دستور زیر را در ترمینال لینوکس وارد نمایید. اما نکته ای که مهم است، در نظر داشتن این است که می بایست برای استفاده از opencv حتما ماژول numpy را نیز نصب کنید. توجه داشته باشید که از دستور pip برای نصب ماژول در python2.x و از pip3 برای نصب ماژول در python3.x استفاده نمایید.

pip install numpy --upgrade
#برای استفاده از نسخه اصلی و main
pip install opencv-python --upgrade
# و برای استفاده از نسخه contrib
pip install opencv-contrib-python --upgrade

نکته: در صورتی که نصب صورت نمی پذیرفت و با خطاهای دسترسی رو به رو شدید دستور را بدین صورت وارد نمایید. pip install opencv-python --upgrade --user برای اطمینان از اینکه آیا opencv در سیستم شما نصب شده یا نه می توانید در ترمینال تایپ کنید python تا مفسر آن در CLI نمایش داده شود. سپس با اضافه کردن ماژول با استفاده از import opencv در صورت نگرفتن هشدار و یا خطا می توانید مطمئن شوید که نصب شده است و در صورتی که می خواهید ورژن نسخه نصب شده را ببینید از دستور print(cv2.__version__) استفاده نمایید.

blackfox@icc-aria > python
>>> import cv2
>>> print(cv2.__version__)
'4.2.0' # your version may be a newer one

روش دوم APT

برای نصب ماژول opencv از طریق apt می توانید نام پکیج ها را با درنظر گرفتن فرمت sudo apt install python-package_name وارد نمایید. و در صورتی که می خواهید ماژول ها را برای python3.x نصب کنید از دستور sudo apt install python3-package_name استفاده نمایید. پس به طور کلی:

#بروز رسانی محل های دانلود پکیج
sudo apt-get update
#به روز رسانی پکیج های فعلی
sudo apt-get upgrade
#نصب ماژول محاسبات آرایه
sudo apt-get install python-numpy
#برای نصب نسخه اصلی
sudo apt-get install python-opencv
#برای نصب نسخه آزمایشی
sudo apt-get install python-opencv-contrib

روش سوم استفاده از git و cmake

1- برای نصب از این طریق می بایست ابتدا پیش نیازی هایی برای سیستم نصب شود. پس به ترتیب دستورات زیر را وارد نمایید.

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

2- در مرحله بعد نیاز به دانلود فایل های مربوط به نسخه مورد نظر می باشد.که می توانید به صورت دستی اقدام به دانلود نسخه مد نظر کنید(نسخه اصلی ، نسخه آزمایشی) و یا با استفاده از دستورت زیر این کار را انجام دهید:

cd ~/<محل دایرکتوری مد نظر>
#برای نصب آخرین نسخه اصلی
git clone https://github.com/opencv/opencv.git
#برای نصب آخرین نسخه آزمایشی
git clone https://github.com/opencv/opencv_contrib.git

3- سپس یک پوشه موقت برای انجام کار ها در همان دایرکتوری ایجاد نمایید. 4- با استفاده از دستور زیر فایل باینری در پوشه سورس را مشخص نمایید.

cmake []

به عنوان مثال به سری زیر نگاه کنید

cd ~/opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

5- در آخر به دایرکتوری ساخته شده وارد شودی و دستور زیر را وارد نمایید

make
sudo make install

برای نصب opencv بر روی سیستم عامل مک کافیه تا از مراحل زیر پیروی کنید:

1- نصب و آپدیت home brew

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew update

2- Tap homebrew-bio

$ brew tap brewsci/bio

3-نصب homebrewبه همراه python3

$ brew install opencv3 --with-contrib --with-python3

4-تغییر به دایرکتوری opencv

از آنجایی که ما opencv را با homebrew نصب کردیم می توانید در داریکتوری /usr/local/Cellar/ این دایرکتوری و نصب شدن آنها را مشاهده کنید

$ brew list
# or
$ ls /usr/local/Cellar/

حالا به داخل دایرکتوری opencv بروید

$ cd /usr/local/Cellar/opencv
$ ls 
3.3.0_3 3.3.1_1

در این دایرکتوری دو نسخه ای که دیده می شود ممکن است ورژن های متفاوتی برای شما باشد برای من به عنوان مثال 3.3.0 و 3.3.1 می باشند.با گرفتن نسخه های جدیدتر این اعداد متفاوت خواهند بود

$ cd 3.3.1_1
$ pwd 
/usr/local/Cellar/opencv/3.3.1_1

بسیار خوب فرض کنید که می خواهیم از نسخه 3.3.1 استفاده کنیم.

5- پیدا کردن فایل cv2..soدر این دایرکتروی

خوب، پس ما نسخه OpenCV را که میخواهیم استفاده کنیم مکانش را در نظر میگیریم. حال میبایست به نسخه مربوط به پایتون خود نسبت دهیم. چه نسخه ای ار پایتون را شما استفاده می کنید؟

$ python --version
Python 2.7.10

$ python3 --version
Python 3.6.3

Python 3.6 و Python 2.7 روی سیستمم نصب می باشد. اگر می خواهید می توانید هر دو نسخه OpenCV را داشته باشید. فقط باید cv2 صحیح را اضافه کنید. cv2..soرا به site package Python اضافه نمایید. ما این مرحله را در مرحله بعدی انجام خواهیم داد. در ضمن، cv2 . .so برای هر نسخه از پایتون. شما می توانید هر نسخه ای را که می خواهید نصب کنید.

گرفتن مکان cv2..so برای پایتون 3

$ cd /usr/local/Cellar/opencv/3.3.1_1
$ ls
INSTALL_RECEIPT.json    bin         share
LICENSE         include
README.md       lib
$ cd lib
ls 
# /usr/local/Cellar/opencv/3.3.1_1/lib
...
...
python2.7
python3.6 
...
...
$ cd python3.6
$ cd site-packages
$ pwd
/usr/local/Cellar/opencv/3.3.1_1/lib/python3.6/site-packages
$ ls
cv2.cpython-36m-darwin.so # this name might be different but... bingo!
OpenCV Python3.6 Path: /usr/local/Cellar/opencv/3.3.1_1/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so

گرفتن مکان cv2..so برای پایتون 2

$ cd /usr/local/Cellar/opencv/3.3.1_1
$ ls
INSTALL_RECEIPT.json    bin         share
LICENSE         include
README.md       lib
$ cd lib
ls 
# /usr/local/Cellar/opencv/3.3.1_1/lib
...
...
python2.7
python3.6 
...
...
$ cd python2.7
$ cd site-packages
$ pwd
/usr/local/Cellar/opencv/3.3.1_1/lib/python3.6/site-packages
$ ls
cv2.so # this name might be different but... bingo!
OpenCV Python2.7 Path: /usr/local/Cellar/opencv/3.3.1_1/lib/python2.7/site-packages/cv2.so

6- اضافه کردن cv2..so به System Python

Python 3.6 Site Packages & cv2..so

-پایتون 3.6 را باز نمایید

$ python3
Python 3.6.3 (default, Oct 22 2017, 16:00:10) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

-گرفتن مکان site package

>>> import sys
>>> print(sys.path)
[..., '/usr/local/lib/python3.6/site-packages', ...]

-اشاره کردن به آدرس opencv درد python 3 OpenCV Python3.6 Path: /usr/local/Cellar/opencv/3.3.1_1/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so - لینک کردن cv2..so به site package

ln -s /usr/local/Cellar/opencv/3.3.1_1/lib/python3.6/site-packages/cv2.cpython-36m-darwin.so /usr/local/lib/python3.6/site-packages/cv2.so

Python 2.7 Site Packages & cv2..so

- پایتون 2.7 را باز نمایید

$ python2
Python 2.7.14 (default, Oct 22 2017, 16:05:07) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

-گرفتن مکان site package

$ python2
Python 2.7.14 (default, Oct 22 2017, 16:05:07) 
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

اشاره کردن به آدرس opencv در python 2 OpenCV Python2.7 Path: /usr/local/Cellar/opencv/3.3.1_1/lib/python2.7/site-packages/cv2.so - لینک کردن cv2..so به site package

 ln -S /usr/local/Cellar/opencv/3.3.1_1/lib/python2.7/site-packages/cv2.so /usr/local/lib/python2.7/site-packages/cv2.so

7- تست اینکه همه چیز درست انجام شده یا نه

برای اینکه تست کنید و متوجه بشوید که نصب و تمام مراحل به درستی انجام شده یا نه کافیه که دستور زیر را اجرا کنید.

$ python3  # or python2
>>> import cv2
>>> print(cv2.__version__)
3.3.1 # your version may be a newer one

 

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
captcha
0دیدگاه