Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Persian
  4. .pro setting for debugging a simole opencv program with Qt creator
Forum Updated to NodeBB v4.3 + New Features

.pro setting for debugging a simole opencv program with Qt creator

Scheduled Pinned Locked Moved Persian
18 Posts 4 Posters 7.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    sara_2005
    wrote on last edited by
    #1

    p{direction:rtl; text-align:right}. سلام ، من براي اجراي يه برنامه ساده در محيط qt creator متوجه شدم که اول بايد يه فايل text رو آماده کرد و تنظيمات رو در آن اضافه نمود. من به فايل .pro تنظميات زير رو اضافه کردم و الان اين فايل به صورت زير است.

    @
    QT += core
    QT -= gui

    TARGET = tt
    CONFIG += console
    CONFIG -= app_bundle

    TEMPLATE = app

    SOURCES += main.cpp

    INCLUDEPATH += C:\OpenCV2.2\include
    LIBS += -LC:\OpenCV2.2\lib
    -lopencv_core220
    -lopencv_highgui220
    -lopencv_imgproc220
    -lopencv_features2d220
    -lopencv_calib3d220
    @

    هدف من اجراي برنامه زير و مشاهده يک تصوير است

    @
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>

    int main() {

    // read an image
    cv::Mat image= cv::imread("a.jpg");
    // create image window named "My Image"
    cv::namedWindow("My Image");
    // show the image on window
    cv::imshow("My Image", image);
    // wait key for 5000 ms
    cv::waitKey(5000);
    
    return 1;
    

    }
    @

    p{direction:rtl; text-align:right}. اين يک برنامه ساده از opencv است.
    بعد از اجراي qmake با سه warning مواجه مي شوم و به نظر مي رسد که 7 خطاي در ادامه مربوط به مشکلات فايل تنظيمات است.
    لطفا اگر نظري در اين رابطه داشتيد به اشتراک بگذاريد .
    متشکرم

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mohsen
      wrote on last edited by
      #2

      p{direction:rtl;text-align:right;}. خطاهایی که میده رو اینجا بگذارید.


      "QtExperts":http://www.qte.ir/ref=b3ff03d5f308ea62d14355f8f67f0f95

      1 Reply Last reply
      0
      • A Offline
        A Offline
        absfrm
        wrote on last edited by
        #3

        p{direction:rtl;text-align:right}. QT -= gui
        ببینید توی این خط کلا GUI غیر فعال میشه و فقط برنامه در محیط کنسول اجرا میشه
        البته متن خطا رو بذارید ، چون نمیشه چیزی گفت بدون اون

        If You Want You Can!

        1 Reply Last reply
        0
        • S Offline
          S Offline
          sara_2005
          wrote on last edited by
          #4

          p{direction:rtl; text-align:right}. از این که پست قبلی کمی ناخوانا بود عذرخواهی می کنم . دسترسی من به اینترنت در همان لحظه قطع .
          شد.
          warnings :
          1- d:\Qtproject\jj\jj.pro:27: warning: Unescaped backslashes are deprecated.
          2-d:\Qtproject\jj\jj.pro:27: warning: Unescaped backslashes are deprecated.
          3-d:\Qtproject\jj\jj.pro:27: warning: Unescaped backslashes are deprecated.

          errors :

          1- main.obj:-1: error: LNK2019: unresolved external symbol "int __cdecl cv::waitKey(int)" (?waitKey@cv@@YAHH@Z) referenced in function main

          2- main.obj:-1: error: LNK2019: unresolved external symbol "void __cdecl cv::imshow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::Mat const &)" (?imshow@cv@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBVMat@1@@Z) referenced in function main

          3-main.obj:-1: error: LNK2019: unresolved external symbol "void __cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPEAX@Z) referenced in function "public: __cdecl cv::Mat::~Mat(void)" (??1Mat@cv@@QEAA@XZ)

          4- main.obj:-1: error: LNK2019: unresolved external symbol "class cv::Mat __cdecl cv::imread(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?imread@cv@@YA?AVMat@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function main

          5- main.obj:-1: error: LNK2019: unresolved external symbol "void __cdecl cv::namedWindow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?namedWindow@cv@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function main

          6- main.obj:-1: error: LNK2019: unresolved external symbol "public: void __cdecl cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QEAAXXZ) referenced in function "public: void __cdecl cv::Mat::release(void)" (?release@Mat@cv@@QEAAXXZ)

          7- debug\tt.exe:-1: error: LNK1120: 6 unresolved externals

          1 Reply Last reply
          0
          • S Offline
            S Offline
            soroush
            wrote on last edited by
            #5

            p{direction:rtl;text-align:right}. با کامپایلر GCC داری سعی می‌کنی به OpenCV که با VC کامپایل شده لینک کنی و یا برعکس
            فایل pro درست به‌نظر نمی‌رسه. تفاوت جداکنندهٔ مسیر و خط چیه؟ کامپایلر رو چک کن اگه درست نشد احتمالاً OpenCV درست کامپایل نشده.

            @
            ...
            INCLUDEPATH += "C:\OpenCV2.2\include"
            LIBS += -L"C:\OpenCV2.2\lib"
            -lopencv_core220
            ...
            @

            بهتر از اون

            @
            ...
            INCLUDEPATH += C:/OpenCV2.2/include
            LIBS += -LC:/OpenCV2.2/lib
            -lopencv_core220
            ...
            @

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mohsen
              wrote on last edited by
              #6

              p{direction:rtl; text-align: right}. به نظرم مسیر دهی LIBS اشتباهه.
              پارامتر -L مسیر رو مشخص میکنه و بعد از اون با -l باید نام lib داده بشه و برای لایبرری های دیگه هم باید همینطور تکرار بشه.

              @
              LIBS += -LC:\OpenCV2.2\lib -lopencv_core220
              -LC:\OpenCV2.2\lib -lopencv_highgui220
              -LC:\OpenCV2.2\lib -lopencv_imgproc220
              -LC:\OpenCV2.2\lib -lopencv_features2d220
              -LC:\OpenCV2.2\lib -lopencv_calib3d220
              @

              [quote author="soroush" date="1355162602"] تفاوت جداکنندهٔ مسیر و خط چیه؟[/quote]

              p{direction:rtl; text-align:right}. چون qmake فاصله در path رو ساپورت نمیکنه بنابراین \ به عنوان جدا کننده درنظر گرفته میشه. مسیر ها هم برای windows مشکلی نداره ولی با / بهتره.

              1 Reply Last reply
              0
              • S Offline
                S Offline
                sara_2005
                wrote on last edited by
                #7

                p{direction:rtl; text-align:right}. سلام من تنظمیات زیر رو به کار بردم الان خطاها برطرف شد و فقط یک خطا به خاطر 64 بیتی یا 32 بیتی بودن داره

                @
                QT += core

                QT -= gui

                TARGET = aa
                CONFIG += console
                CONFIG -= app_bundle

                TEMPLATE = app

                SOURCES += main.cpp

                INCLUDEPATH += C:/OpenCV2.2/include\

                LIBS += -LC:/OpenCV2.2/lib -lopencv_core220 \

                -LC:/OpenCV2.2/lib -lopencv_highgui220 \
                
                -LC:/OpenCV2.2/lib -lopencv_imgproc220 \
                
                -LC:/OpenCV2.2/lib -lopencv_features2d220 \
                
                -LC:/OpenCV2.2/lib -lopencv_calib3d220
                

                @

                خطایی که مشاهده می شه :
                opencv_highgui220.lib(opencv_highgui220.dll):-1: error: LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mohsen
                  wrote on last edited by
                  #8

                  p{direction:rtl; text-align:right}. خوب این که دیگه مشخصه. OpenCV برای x86 کامپایل شده و شما میخواهید با کیوت x64 لینکش کنید.

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    sara_2005
                    wrote on last edited by
                    #9

                    p{direction:rtl; text-align:right}. من لپ تاپ 64 بیتی دارم و وقتی که opencv و qtcreator رو نصب می کنم انتخابی ندارن که کامپیوتر چند بیتی هست ؟ الان چکار می تونم بکنم ؟
                    دوباره هم که اینا رو نصب کنم باز همین مشکل هست.

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      sara_2005
                      wrote on last edited by
                      #10

                      p{direction:rtl; text-align:right}. البته من برای opencv از روشی استفاده کردم که برای 64 بیتی ها کار می کنه
                      و از فایل زیر استفاده کردم
                      OpenCV-2.2.0-win32-vs2010_3.exe

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        mohsen
                        wrote on last edited by
                        #11

                        p{direction:rtl; text-align:right}. شما نمیتونید لایبرری هایی که با کامپایلر 32 بیت کامپایل شده باشن رو توسط کامپایلر 64 بیتی لینک کنید. همچنین همونطور که سروش قبلا توضیح داده نمیتونید لایبرری هایی که با کامپایلر دیگری کامپایل شده باشن رو لینک کنید. لایبرری های OpenCV شما حتما باید با همان bitness و کامپایلری که برای کیوت استفاده شده کامپایل شده باشه. در غیر اینصورت قادر به استفاده از اونها نخواهید بود.
                        این فایلی هم که نوشتید از اسمش مشخصه که برای 32 بیت هست.

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          sara_2005
                          wrote on last edited by
                          #12

                          p{direction:rtl; text-align:right}. ببخشید یه سوال شما تا حالا در محیط ویندوز opencv رو با qt creator اجرا کردید ؟ می تونم خواهش کنم که Pdf نصبش رو برای منم بفرستید ؟

                          1 Reply Last reply
                          0
                          • M Offline
                            M Offline
                            mohsen
                            wrote on last edited by
                            #13

                            p{direction:rtl; text-align:right}. !

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              sara_2005
                              wrote on last edited by
                              #14

                              p{direction:rtl; text-align:right}. هدف من از کار با opencv بدست آوردن Homography و استفاده از توابع SIFT و SURF هست.
                              البته من opencv2.4.3 رو هم در محیط linux ubunto نصب کردم ولی هنوز موفق نشدم که هموگرافی رو بدست بیارم.
                              از کسی که پرسیدم گفت این کار با ویندوز و استفاده از qt creator راحت تره .
                              برای همین من اومدم تو ویندوز opencv2.4.3 نصب کنم
                              اما نشد و در فایل هایی که روی سایت opencv بود خطا وجود داشت چون قدیمی بودن و آپدیت نشده بودن .
                              برای همین به ناچار از opencv2.2 که قبلا نصب کرده بودم استفاده می کنم.
                              اگه نظری دارید لطفا توضیح بدین.

                              1 Reply Last reply
                              0
                              • M Offline
                                M Offline
                                mohsen
                                wrote on last edited by
                                #15

                                p{direction:rtl;text-align:right}. من خیلی دوست دارم که برای راه اندازی کیوت و OpenCV کمکتون کنم اما فرصت توضیح اونها رو ندارم. اگرچه توضیحاتی که تو این تاپیک داده شد برای راه افتادن کارتون کافیه ولی اگر اینها رو هم نتونید درک کنید باید در اینترنت کمی در مورد لینک کردن در ++c و استفاده از لایببری های static و dynamic مطالعه کنید چون اینها اصلا مربوط به کیوت نمیشه بلکه مربوط به کامپایلر ها و ++c هست.

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  sara_2005
                                  wrote on last edited by
                                  #16

                                  ممنون

                                  1 Reply Last reply
                                  0
                                  • S Offline
                                    S Offline
                                    soroush
                                    wrote on last edited by
                                    #17

                                    [quote author="sara_2005" date="1355224754"]p{direction:rtl; text-align:right}. هدف من از کار با opencv بدست آوردن Homography و استفاده از توابع SIFT و SURF هست.
                                    البته من opencv2.4.3 رو هم در محیط linux ubunto نصب کردم ولی هنوز موفق نشدم که هموگرافی رو بدست بیارم.
                                    از کسی که پرسیدم گفت این کار با ویندوز و استفاده از qt creator راحت تره .
                                    برای همین من اومدم تو ویندوز opencv2.4.3 نصب کنم
                                    اما نشد و در فایل هایی که روی سایت opencv بود خطا وجود داشت چون قدیمی بودن و آپدیت نشده بودن .
                                    برای همین به ناچار از opencv2.2 که قبلا نصب کرده بودم استفاده می کنم.
                                    اگه نظری دارید لطفا توضیح بدین.[/quote]

                                    p{direction:rtl; text-align:right}. من از OpenCV با کیوت توی لینوکس به‌راحتی استفاده می‌کنم. مشکلی نباید داشته باشی. کیوت برای ویندوز نسخهٔ ۶۴بیتی منتشر نمی‌کنه اما توی لینوکس می‌تونی ۶۴ بیتی رو داشته باشی (هم کیوت و هم OpenCV) چون تمام پکیج‌های سیستم توی لینوکس از یک سیستم یک‌پارچه هستن مشکلاتی از این دست پیش نمیاد. من شخصاً تا حد امکان از برنامه‌نویسی تحت ویندوز مخصوصاً با ابزار متن‌باز (مثل کیوت و اوپن‌سی‌وی) دوری می‌کنم. چه لزومی داره خودتو با این همه پیچیدگی و دردسر درگیر کنی؟

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      sara_2005
                                      wrote on last edited by
                                      #18

                                      p{direction:rtl; text-align:right}. من الان چند روز هست که به این نتیجه رسیدم و opencv2.4.3 رو تو لینوکس نصب کردم .
                                      الان به دنبال نصب qt و lib هاش در محیط linux و هستم. موقعی که از نرم افزارهای خود لینوکس می خواهم که این چند تا رو نصب کنه اینترنت دچار مشکل می شه . من تو لینوکس هم نتونستم نتیجه اجرای هموگرافی رو ببینم با اینکه از سمبل های خودش هست

                                      1 Reply Last reply
                                      0

                                      • Login

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • Users
                                      • Groups
                                      • Search
                                      • Get Qt Extensions
                                      • Unsolved