با سلام ،
تو این آموزش قراره بعد از نصب 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 حتی اگه سیستم شما ۶۴ بیتی هست .
اضافه کردن کتابخونه های 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 بیلد کنید .
منبع :
با سلام. یه سوال در مورد نرم افزاری که با C++ نوشته شده دارم. میتونم بپرسم؟
بفرمایید اگه کمکی از دستم بر بیاد انجام میدم.
سلام اقای سجودی وقتتون بخیر
یک سوال راجع به opencv در محیط ویژوال استادیو داشتم.امکانش هست کمکم کنید?ممنونم
سلام دوستان اگر با ارور مواجه شدید این چندتاراهکار رو انجام دهید
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