QT پردازش تصویر

استفاده از QT برای پروژه های پردازش تصویر OpenCV

نوشته شده توسط امین سجودی

با سلام ،

تو این آموزش قراره بعد از نصب QT و OpenCV ، این دو کتابخونه مهم رو با هم هماهنگ کنیم تا با هم کار کنند . یعنی مثلا یک برنامه پردازش تصویر بسازیم و بعدش منو هاش رو با QT درست کنیم .

اولین قدم اینه که OpenCV رو دانلود کنیم .من با نسخه 2.4.10 کار می کنم .

لینک دانلود

فایل دانلود شده رو باز کنید و اون رو توی یک فولدر نصب کنید ، دقت کنید توی مسیر نصب کاراکتر فاصله وجود نداشته باشه . مثلا :

c:\opencv

قدم بعدی دانلود QT هستش .می تونید از کامپایلر Visual Studio استفاده کنید ، برای این کار نسخه زیر رو دانلود کنید . (البته قبلش باید Visual Studio رو نصب کنید)(البته شما می تونید از MinGW هم استفاده کنید ، من خودم Visual Studio رو ترجیح می دم)

(Qt 5.4.1 for Windows 32-bit (VS 2013, 705 MB

دقت کنید که فقط نسخه ۳۲ بیت رو دانلود کنید ، حتی اگه سیستم خودتون ۶۴ بیتی هست .

پس از نصب QT , نرم افزار QT Creator باید روی سیستم شما نصب شده باشد .

QT Creator رو باز کنید و یک Widget Application بسازید ، تست کنید که آیا QT درست کار می کند یا نه .

بسیار خوب ، شما الان باید ۲ کار رو انجام بدید تا بتونید از OpenCV توی QT Creator استفاده کنید :

۱ – اضافه کردن فایل های کتابخونه ای .dll فولدر Build ای که OpenCV داره به متغیر PATH .  متغیر PATH یک Environment Variable است .

۲- اضافه کردن فایل های کتابخونه ای .lib فولدر Build ای که OpenCV داره به فایل .pro پروژه OpenCV .

 

اضافه کردن به PATH :

شما می تونید مسیر فایل های .dll رو به متغیر PATH سیستم  یا به متغیر PATH یوزر اضافه کنید . راه حل دوم بهتره . برای همین اگه همچین متغیری وجود نداره یک متغیر با اسم PATH درست کنید و توش مسیر فایل های .dll رو اضافه کنید . مسیر فایل ها باید شبیه این باشه :

OpenCV/build/x86/vc12/bin

دقت کنید x86 رو استفاده کنید نه x64 حتی اگه سیستم شما ۶۴ بیتی هست .

path

اضافه کردن کتابخونه های lib :

برای این کار فایل .pro پروژه QT رو باز کنید ، این محتویات رو به انتهاش اضافه کنید .

 

win32 {
    INCLUDEPATH += "C:\\opencv2410\\build\\include" \

    CONFIG(debug,debug|release) {
        LIBS += -L"C:\\opencv2410\\build\\x86\\vc12\\lib" \
            -lopencv_core2410d \
            -lopencv_highgui2410d \
            -lopencv_imgproc2410d \
            -lopencv_features2d2410d \
            -lopencv_calib3d2410d
    }

    CONFIG(release,debug|release) {
        DEFINES += QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT
        LIBS += -L"C:\\opencv2410\\build\\x86\\vc12\\lib" \
            -lopencv_core2410 \
            -lopencv_highgui2410 \
            -lopencv_imgproc2410 \
            -lopencv_features2d2410 \
            -lopencv_calib3d2410
    }
}

 

دقت کنید که مسیر نصب Open CV رو درست داده باشید . اینجا من فقط یکسری از کتابخونه های OpenCV رو نوشتم  ، شما می تونید هر کدوم دیگه رو که خواستید اضافه کنید ، فقط کافیه یک کاراکتر   \  به انتهای خط بالا اضافه کنید و اسم کتابخونه رو بدون پسوندش با اضافه کردن -l به ابتدای اون اضافه کنید .(درست مثل کتابخونه هایی که الان اضافه شده)

اون کتابخونه هایی که در انتهاشون حرف d هست به این معنیه که این کتابخونه ها برای مد دیباگ استفاده میشن( مثل lopencv_calib3d2410d)

، دقت کنید که کتابخونه برای هر دو مد دیباگ و ریلیز رو اضافه کنید .

 

بعد هر بار تغییر فایل .pro باید دوباره پروژه رو با qmake بیلد کنید .

منبع :

drthitirat.wordpress.com

 

درباره نویسنده

امین سجودی

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

دیدگاه

  • سلام دوستان اگر با ارور مواجه شدید این چندتاراهکار رو انجام دهید
    https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

    If you have the following error : … windres.exe: unknown option — W …

    try this : in cmake uncheck ENABLE_PRECOMPILED_HEADERS

    If, in the file opencv/sources/modules/videoio/src/cap_dshow.cpp, you have the following error : ‘sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA’ was not declared in this scope …

    try this :put the following line: #define NO_DSHOW_STRSAFE, before the line : #include “DShow.h”

    If you have the error: ‘nullptr’ was not declared in this scope..

    try this: in cmake check the box ENABLE_CXX11

    If, in the file modules\videoio\src\cap_msmf.cpp you have the error: using invalid field ‘{anonymous}::ComPtr::p’..

    try this: in cmake unchecking WITH_MSMF

اضافه کردن دیدگاه

یازده + هفت =