2013-04-08 5 views
39

का उपयोग करें यह प्रश्न कई बार डुप्लिकेट होना चाहिए, लेकिन यह अभी काम नहीं करता है और कभी-कभी यह अभी भी अनुत्तरित रहता है। जानकारी के सूत्रों का कहना मुख्य रूप से इन
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
http://www.youtube.com/watch?v=dgcXYQijV6c
QtCreator में opencv को कैसे लिंक करें और क्यूटी लाइब्रेरी

हैं, तो यह है कि मैं क्या लगता है कि एक/क्या कर सकते हैं चाहिए के योग है। (और अब यह मेरे लिए काम करता है।) उम्मीद है कि मैंने शुरुआत से सब कुछ बताया है, इसका उद्देश्य एक बहुत ही स्पष्ट ट्यूटोरियल लिखना है। QtCreator

  1. के लिए OpenCV की

    स्थापना मैं पहले से ही एमएस दृश्य स्टूडियो 2010 व्यावसायिक स्थापित किया है। (मैं एक छात्र के रूप में एक नि: शुल्क लाइसेंस है) - मुझे लगता है कि यह आवश्यक नहीं है, बस एक उल्लेख

  2. डाउनलोड: क्यूटी 5.0.1 विंडोज 32-बिट के लिए (MinGW 4.7, 823 एमबी)
    2.1 स्थापित करें: चेतावनी, क्यूटी का उपयोग करने वाली सभी चीजें (जैसे ओपनसीवी) उन निर्देशिकाओं में होनी चाहिए जिनमें उनके नामों में श्वेत-स्थान न हों। - यानी "कार्यक्रम फाइलें" गलत है। (लेकिन मैं नहीं चाहता कि विभिन्न कार्यक्रम फ़ाइलों को सी पर सीधे जमा किया जाए, इसलिए मैंने केवल एक फ़ोल्डर "प्रोग्राम" बनाया है जिसमें सबकुछ महत्वपूर्ण है)
  3. डाउनलोड करें: सेमीके-2.8.10.2-win32-x86 .exe - सभी उपयोगकर्ताओं के लिए स्थापित करें (इस प्रोग्राम फ़ाइलें में हो सकता है)
  4. डाउनलोड: C: OpenCV-2.4.0.exe, को निकालने \ \ कार्यक्रम opencv24 - यह एक निर्देशिका बना देंगे "opencv "; एक और फ़ोल्डर "opencv_bin" जोड़ें।
    C: अब यह इस तरह दिखता है \ कार्यक्रम \ opencv24 \ opencv *
    सी: एक MinGW संकलक के लिए लिंक \ कार्यक्रम \ opencv24 \ opencv_bin
  5. सेट पथ वातावरण चर, ताकि वहाँ होना । जैसे सी: \ प्रोग्राम \ Qt \ Qt5.0.1 \ उपकरण \ MinGW \ bin;
  6. प्रारंभ cmake-gui.exe
    6.1 स्रोत कोड: OpenCV के लिए डिफ़ॉल्ट निर्देशिका सेट; सी: \ प्रोग्राम \ opencv24 \ opencv
    6.2 द्विआधारी: opencv_bin dir सेट करें; C: \ कार्यक्रम \ copencv24 \ opencv_bin
    6.3 क्लिक कॉन्फ़िगर:
    • चुनें MinGW Makefiles और देशी compilers निर्दिष्ट करें, क्लिक करें अगले
    • फील्ड सी gcc.exe के लिए है; सी:/प्रोग्राम्स /Qt/Qt5.0.1/Tools/MinGW/bin/gcc.exe
    • फील्ड सी ++ g ++ के लिए है। Exe; सी:। /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/g ++ exe
    • फील्ड fortran खाली हो सकता है, खत्म
    6 क्लिक करें।4 कई लाल रेखाएं दिखाई देगी खोज फ़ील्ड में एक-एक करके दर्ज करें: WITH_QT, WITH_TBB, WITH_IPP, WITH_CUDA, CMAKE_BUILD_TYPE
    • WITH_QT - चयनित होना चाहिए।
    • IN_TBB, WITH_IPP, WITH_CUDA - अचयनित
    • CMAKE_BUILD_TYPE - क्लिक करें और "डीबग" (उद्धरण के बिना) टेक्स्ट दर्ज करें और दर्ज करें।
    • खोज फ़ील्ड से टेक्स्ट साफ़ करें।
    6.5 क्लिक कॉन्फ़िगर और कॉन्फ़िगर जब तक सभी लाल लाइनों चले गए हैं, तो क्लिक उत्पन्न और टर्मिनल (~ कमांड प्रॉम्प्ट) के करीबcmake-gui.exe
  7. जाएँ पर क्लिक रखने, निर्देशिका है जहाँ बनाता (opencv_bin) और प्रकार mingw32-बनाने
  8. 01 कर रहे हैं सीडी
  9. प्रक्रिया में काफी समय के बाद समाप्त करता है, प्रकार mingw32-मेक स्थापित
  10. पथ चर में QtCreator/bin सी के लिए पथ जोड़ें: \ कार्यक्रम \ क्यूटी \ Qt5.0.1 \ उपकरण \ QtCreator \ बिन

अब मैंने QtCreator में एक नया कंसोल ऐप बनाया है।

//cvHello.pro 
QT  += core 
QT  -= gui 

TARGET = cvHello 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 
INCLUDEPATH += C:/Programs/opencv24/opencv_bin2/install/include 
LIBS += "C:/Programs/opencv24/opencv_bin2/bin/*.dll" 

SOURCES += main.cpp 
OTHER_FILES += \ 
    img.JPG 

और मुख्य फ़ाइल:

//main.cpp 
#include <iostream> 
#include "opencv2/core/core.hpp" 
#include "opencv2/highgui/highgui.hpp" 
#include "opencv/cv.h" 

using namespace std; 

int main() 
{ 
    cout << "Hello World!" << endl; 

    cv::Mat mat; 
    mat = cv::imread("img.JPG"); 
    cvNamedWindow("hello"); 
    cv::imshow("hello",mat); 

    cvWaitKey(0); 

    return 0; 
} 
+0

मैं यहां LIBS परिभाषित करता हूं ताकि मैं एक निर्देशिका opencv_bin2 का उपयोग कर सकूं, क्योंकि मैंने कई बार ओपनसीवी का पुनर्निर्माण किया था। –

+3

मेरी परियोजना [सीवीआईमेज] (https://github.com/karlphillip/GraphicsProgramming/tree/master/cvVideo) गिटहब पर उपलब्ध है और यह दर्शाता है कि क्यूटी/ओपनसीवी के साथ एक क्रॉस-प्लेटफार्म एप्लिकेशन कैसे बनाया जाए। **। प्रो ** फ़ाइल की जांच करें। – karlphillip

+0

मुझे [यहां] (http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml) में दिए गए डीबग के बजाय "CMAKE_BUILD_TYPE = रिलीज़" का उपयोग करना था - आपका पहला स्रोत। – inblueswithu

उत्तर

10

अंत में मैं खुश होना शुरू कर रहा हूँ। इस प्रश्न को समायोजित करते समय मुझे सभी तरीकों का प्रयास करना पड़ा, LIBS को कैसे परिभाषित किया जाए। उन्हें मैन्युअल रूप से सूचीबद्ध करने में मदद की, पहले मैंने उन्हें किसी भी तरह गलत तरीके से लिखा था।

यह है कि यह कैसे अंत में काम करता है: Btw

LIBS += -LC:\\Programs\\opencv24\\opencv_bin2\\bin \ 
    libopencv_core240d \ 
    libopencv_highgui240d \ 
    libopencv_imgproc240d \ 
    libopencv_features2d240d \ 
    libopencv_calib3d240d \ 

अगर मैं किसी भी व्याकरण की गलतियों कर दिया है, मैं मेरी अंग्रेजी के लिए माफी चाहता हूँ। :)

+0

मुझे अभी भी पता नहीं है कि मूल LIBS + = "C:/Programs/opencv24/opencv_bin2/bin/*। dll" –

+0

के साथ क्या गलत था, आपको इसे .libs जोड़ने की आवश्यकता है क्योंकि यह डीएलएल के अंदर कार्यों के बारे में जानकारी शामिल है, और परियोजना के निर्माण के दौरान इस जानकारी की आवश्यकता है, इसलिए आपका एक्सई चलाएगा, फिर उन जानकारी की जांच करें और फिर आवश्यक डीएलएल लोड करें। –

+0

Wajdy: क्या आपका मतलब विस्तार नहीं है। Lib या .libs, बल्कि निर्देशिका निर्देशिका में किसी भी फाइल lib? शायद opencv_bin/lib में और opencv_bin/install/lib नहीं।लेकिन जब मैं बस बदलता हूं- एलसी: \\ प्रोग्राम \\ opencv24 \\ opencv_bin2 \\ bin \ ... to -LC: \\ प्रोग्राम \\ opencv24 \\ opencv_bin2 \\ lib \ ... तो यह काम नहीं करता है । क्या आप कह रहे हैं कि \\ bin \ के साथ समाधान गलत है? –

संबंधित मुद्दे