داشتم این مطلب رو بصورت جدا برای خودم مینوشتم که دستورات رو فراموش نکنم، گفتم چه خوبه که بصورت عمومی منتشرش کنم، شاید گره ای از کار کسی باز کرد. البته همچنان نوشتن ادامه Ncurses و Shell Script در دستوره کاره !
قبلا کتابخانه OpenCV را معرفی کرده بودم، خیلی ها علاقمندند از کتابخانههای Qt و OpenCV بصورت توامان استفاده کنند، که با اعمال تغییرات ساده ای در فایل pro. در پروژه ای که میسازیم میتوانیم OpenCV را به Qt بشناسانیم!
برای ایجاد یک پروژه جدید در Qt بصورت زیر عمل میکنیم :
از منوی فایل گزینه New Project را میزنیم و سپس Qt Widgets Application را انتخاب میکنیم و بقیه موارد را به صورت پیش فرض رها میکنیم.
با استفاده از دستور
pkg-config --cflags opencv
آدرس هدر فایل های کتابخانه را بدست میآوریم . احتمالا چیزی شبیه به این خواهد بود :
-I/usr/include/opencv
در فایل pro. در پروژه برنامه ما، دستور زیر را وارد میکنیم:
INCLUDEPATH += /usr/include/opencv
توجه کنید که قسمت سمت راست دستور بالا از pkg-config --cflags opencv بدست میآید ( البته بدون کاراکتر I در ابتدای مسیر )
یک بار دیگر از ترمینال استفاده کرده و آدرس کتابخانههای OpenCV را بدست میآوریم:
pkg-config --libs opencv
که احتمالا چیزی شبیه به
-L/lib64 -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -ltbb -lGL -lGLU -lrt -lpthread -lm -ldl
خواهد بود.
در فایل pro. در یک خط جدید دستور زیر را وارد میکنیم:
LIBS += -L/lib64 -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -ltbb -lGL -lGLU -lrt -lpthread -lm -ldl
البته با توجه به پروژه خود تنها کتابخانههای مورد نیاز خود را اضافه میکنیم.
در انتها برای آزمایش کارکرد صحیح یک برنامه ساده بصورت زیر در فایل mainwindow.cpp مینویسیم:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <opencv2/opencv.hpp> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->;setupUi(this); cv::Mat inputImage = cv::imread("/home/ali/Picture/lfs-puzzle.jpg"); cv::imshow("Display Image", inputImage); } MainWindow::~MainWindow() { delete ui; }
بدیهیست آدرس عکس مورد نظر برای نمایش باید آدرس معتبری باشد .
این ترجمه آزادی بود از نوشته Rodrigo Berriel در این باره .
خارج شدن از نظر