گیاهی ترین گیاهی ترین AnzanDigital فروشگاه
خانه / کتابخانه پردازش تصویر / استفاده از اکلیپس به عنوان کامپایلر OpenCV
opencv
opencv

استفاده از اکلیپس به عنوان کامپایلر OpenCV

نکته: در ابتدا دو مسیر پیش رو داریم، تنظیم پروژه مستقیم و یا استفاده از CMake است. در اینجا روش مستقیم توسط کامپایلر اکلیپس مورد نظر است.

پیش نیاز ها:

  1. ابتدا باید کامپایلر Eclipse را همراه با افزودنی CDT نصب کنید، این افزودنی مربوط به C++/C بوده و ما را قادر میسازد کامپایل و خطا یابی را در کامپایلر انجام دهیم. برای نصب کافیست به آموزش کامپایلر اکلیپس مراجعه نمایید.
  2. قبل از هرگونه پیکر بندی بایستی از نصب کتابخانه های OpenCv اطمینان حاصل فرمایید، برای نصب کافیست به آموزش نصب OpenCv مراجعه نمایید.

  •  هم اکنون با باز کردن اکلیپس، یه پروژه ی جدید بسازید:

File -> New -> C/C++ Project

a0

  • با انتخاب نام مناسب برای نوع Empty Project، می توانید مجموعه ی Toolchain دلخواه را انتخاب فرمایید، دقت کنید در لینوکس Linux GCC پیشنهاد می شود.

a1

  • موارد باقی را رها کرده و بر روی کلید پایان کلیک کنید.
  • در پنجره ی مربوطه به Project Explorer  فایل جدیدی به عنوان فایل اصلی برنامه ، به عنوان مثال main.cpp ایجاد کنید، این فایل در زیر شاخه ی مربوط به پروژه ی شما قرار خواهد گرفت.

a3

main.cpp حاوی کد های مورد نظر شما برای اجرا خواهد بود. با قرار دادن کد نمونه در فایل فوق، ادامه ی پیکربندی را انجام دهید.

کد نمونه اول:

#include <opencv2/opencv.hpp>

#include <iostream>

using namespace std;
using namespace cv;

/*
* that OpenCV functions live within a namespace called cv.
* To call OpenCV functions, you must explicitly tell the
* compiler that you are talking about the cv namespace by
* prepending cv:: to each functioncall.
*/

int main(int argc, char** argv) {

// Mat img = imread( argv[1], -1 );
// add image address on command line and press Enter.

// Or use Test.jpg on Project Dir .!. Create file then Compile Project
Mat img = imread("Test.jpg", -1);

namedWindow("Win1", WINDOW_NORMAL);

imshow("Win1", img);

char a= waitKey(0);
cout<<"a: "<<a<<endl;//It returns the code of the pressed key
}

 

تذکر: قبل از ادامه روند کار ، گام به گام کد را مورد بررسی قرار دهید، مواردی همچون ورودی در کد بالا پیش فرض فایل Test.jpg در محل اجرای پروژه است، ممکن است با انتقال اشتباه فایل در آدرسی دیگر و یا خطای نام گذاری فایل قادر به اجرای کد نباشید. امکان تغییر به حالت ورودی ترمینال نیز با برداشتن علایم // از ابتدای تعاریف مربوط به (Mat img = imread( argv[1], -1 وجود دارد ( دستور مربوط به ورودی Test.jpg را نیز غیر فعال کنید).

کد نمونه ی دوم(دانلود main.cpp):

#include <opencv2/opencv.hpp>
 
using namespace cv;
 
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
 
if( argc != 2 || !image.data )
{
printf( "No image data \n" );
return -1;
}
 
namedWindow( "Display Image", WINDOW_AUTOSIZE );
imshow( "Display Image", image );
 
waitKey(0);
 
return 0;
}
  • هم اکنون در قسمت Project Explorer بر روی شاخه ی اصلی پروژه کلیک کنید و با راست کلیک Properties را انتخاب کنید و یا مستقیماً در پروژه ی مورد نظر از طریق منوی زیر عمل کنید.

Project–>Properties

در بخش C/C++ Build بر روی Settings رفته و در بخش راست، تب Tool Settings را برگزیده، اطلاعات زیر را وارد کنید.

  • در شاخه ی  GCC C++ Compiler به زیر شاخه ی Includes رفته و مسیر نصب OpenCv را در  (Include paths(-l  وارد کنید. در مثال ما :
/usr/local/include/opencv

a9

تذکر: در صورت بی اطلاعی از محل نصب، با باز کردن ترمینال لینوکس دستور زیر را وارد کنید:

pkg-config --cflags opencv

در نتیجه خواهید داشت :

-I<strong>/usr/local/include/opencv</strong> -I/usr/local/include

به آدرس بعد از I- توجه کنید و در بخش مربوطه وارد کنید (به تصویر دقت کنید).

  • هم اکنون در شاخه ی مربوط به GCC C++ Linker موارد زیر را انجام دهید.

ابتدا در بخش (Library search path (-L آدرس مربوط به کتابخانه های OpenCv  را قرار دهید :

/usr/local/lib

 

سپس در (Libraries(-l مواردی از کتابخانه های OpenCv که نیاز دارید را وارد کنید، برای کاربرد های ساده تنها سه کتابخانه ی Core,HighGUI,ImgProc کافی است.

a10

تذکر: در صورت بی اطلاعی از اسامی کتابخانه ها، با باز کردن ترمینال لینوکس دستور زیر را وارد کنید:

pkg-config --libs opencv

خروجی به ترتیب زیر خواهد بود :

-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

 

بعد اتمام لیست (به شکل بالا توجه کنید) ، بر روی تایید کلیک کرده و پروژه ی خود را Build all کنید، در صورت خطا در لیست خطا ها، برای کتابخانه ای خاص، میتوانید آنرا از لیست پاک کنید (اگر از موارد ضروری پروژه نباشند) و یا نسبت به نصب دوباره آن اقدام نمایید.

a12

هم اکنون شما میتوانید پروژه ی خود را اجرا کنید، برای اجرای SuperUser بازکردن پوشه ی Debug پروژه توسط ترمینال لینوکس و وارد کردن دستور Sudo su الزامی است، سپس با وارد کردن خط دستور /. قبل از نام پروژه در پوشه ی Debug ( که اکثرا با رنگ سبز به نمایش در می آید) آن را اجرا کنید.

کانال تلگرام بیر رباتیک

درباره Ahrovani Hadi

مشاهده بیشتر

-sgURvz6

اکتیو پایتون

اکتیو پایتون: در اکتیو پایتون محبوب ترین بسته های پایتون برای علم داده(Data Science)، یادگیری ماشین، …

دیدگاه بگذارید

2 دیدگاه ها روشن "استفاده از اکلیپس به عنوان کامپایلر OpenCV"

با خبر سازی از
avatar

مرتب سازی بر اساس:   تازه ترین ها | قدیمی ترین | بیشترین تعداد رای
eshahnazi
مهمان
eshahnazi
1 سال 4 ماه ها مدت ها قبل

سلام
کلا چطوری باید opencv رو روی لینوکس نصب کرد؟
من نسخه لینوکس opencv رو از سایتش گرفتم. ایکلیپس رو هم نصب کردم روی لینوکس و برنامه hello world هم اجرا شد.
من متوجه منظورتون از نصب opencv نمیشم. یه فایل زیپ هست.چی روباید نصب کنم؟
منظورتون اینه که با برنامه cmake کامپایل بشه؟
چطور باید کامپایلش کرد؟

wpDiscuz