2013-04-08 15 views
39

Câu hỏi này phải trùng lặp nhiều lần, nhưng nó không hoạt động và đôi khi nó vẫn chưa được trả lời. Nguồn thông tin chủ yếu là những
http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml
http://www.youtube.com/watch?v=dgcXYQijV6c
Cách liên kết opencv trong QtCreator và sử dụng thư viện Qt

Đây là tổng của những gì tôi nghĩ ta nên/có thể làm. (Và bây giờ nó làm việc cho tôi.) Hy vọng rằng tôi đã đề cập mọi thứ ngay từ đầu, mục đích là viết một hướng dẫn rất rõ ràng.

Lắp đặt OpenCV cho QtCreator

  1. Tôi đã cài đặt MS Visual Studio 2010 Professional. (Tôi có một giấy phép tự do như một sinh viên) - Tôi nghĩ rằng đây là không cần thiết, chỉ là một đề cập đến
  2. Download: Qt 5.0.1 dành cho Windows 32-bit (MinGW 4.7, 823 MB)
    2.1 Cài đặt: Cảnh báo, mọi thứ mà Qt sử dụng (ví dụ OpenCV) phải nằm trong các thư mục không chứa các khoảng trắng trong tên của chúng. - nghĩa là "Program Files" là sai. (Nhưng tôi không muốn các tệp chương trình khác nhau tích lũy trực tiếp trên C, vì vậy tôi chỉ tạo thư mục "Chương trình" trong đó mọi thứ quan trọng được cài đặt)
  3. Tải xuống: cmake-2.8.10.2-win32-x86 .exe - Cài đặt cho tất cả người dùng (có thể trong Program Files)
  4. Download: OpenCV-2.4.0.exe, giải nén vào: C: \ Programs \ opencv24 - nó sẽ tạo ra một thư mục "opencv "; thêm một thư mục khác "opencv_bin". Bây giờ nó trông như thế này:
    C: \ Programs \ opencv24 \ opencv *
    C: \ Programs \ opencv24 \ opencv_bin
  5. Set biến môi trường PATH, do đó có thể là một liên kết đến trình biên dịch MinGW . ví dụ. C: \ Programs \ Qt \ Qt5.0.1 \ Tools \ MinGW \ bin;
  6. Bắt đầu cmake-gui.exe
    6.1 mã nguồn: thiết lập các thư mục mặc định cho OpenCV; C: \ Programs \ opencv24 \ opencv
    6.2 nhị phân: đặt thư mục opencv_bin; C: \ Programs \ copencv24 \ opencv_bin
    6.3 nhấp chuột cấu hình:
    • Chọn MinGW MakefilesXác định trình biên dịch có nguồn gốc, bấm tiếp theo
    • Dòng C là cho gcc.exe; C: /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/gcc.exe
    • Trường C++ là dành cho g ++. Exe; C:. /Programs/Qt/Qt5.0.1/Tools/MinGW/bin/g ++ exe
    • Dòng fortran thể để trống, nhấp xong
    6.4 Nhiều đường màu đỏ sẽ xuất hiện Để trường tìm kiếm nhập từng cái một: WITH_QT, WITH_TBB, WITH_IPP, WITH_CUDA, CMAKE_BUILD_TYPE
    • WITH_QT - phải được chọn.
    • WITH_TBB, WITH_IPP, WITH_CUDA - phải được bỏ chọn
    • CMAKE_BUILD_TYPE - nhấp và nhập văn bản "Gỡ lỗi" (không có dấu ngoặc kép).
    • Xóa văn bản khỏi trường Tìm kiếm.
    6,5 nhấp chuột configure và giữ cách nhấn vào cấu hình cho đến khi tất cả các dòng màu đỏ đã mất hết, sau đó nhấp chuột tạogầncmake-gui.exe
  7. Chuyển đến thiết bị đầu cuối (~ command prompt), cd đến thư mục mà là xây dựng (opencv_bin) và loại mingw32-làm
  8. Khi quá trình này kết thúc sau một thời gian dài, loại mingw32-thực hiện cài đặt
  9. Thêm vào biến Path đường dẫn đến QtCreator/bin C: \ Programs \ Qt \ Qt5.0.1 \ Tools \ QtCreator \ bin

Bây giờ tôi đã tạo ứng dụng bảng điều khiển mới trong 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 

Và file chính:

//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

Tôi xác định LIBS ở đây để tôi sử dụng một thư mục opencv_bin2, bởi vì tôi xây dựng lại opencv nhiều lần. –

+3

Dự án của tôi [cvImage] (https://github.com/karlphillip/GraphicsProgramming/tree/master/cvVideo) có sẵn trên GitHub và trình bày cách xây dựng một ứng dụng đa nền tảng với Qt/OpenCV. Kiểm tra tập tin **. Pro **. – karlphillip

+0

Tôi đã phải sử dụng "CMAKE_BUILD_TYPE = Release" thay vì Gỡ lỗi như được cung cấp trong [ở đây] (http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml) - nguồn đầu tiên của bạn. – inblueswithu

Trả lời

10

Cuối cùng tôi bắt đầu để được hạnh phúc. Khi điều chỉnh câu hỏi này, tôi phải thử mọi cách, cách xác định LIBS. Liệt kê chúng được trợ giúp bằng tay, lúc đầu tôi đã viết chúng bằng cách nào đó sai.

Đây là cách nó hoạt động cuối cùng:

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

Btw nếu tôi đã thực hiện bất kỳ sai lầm ngữ pháp, tôi xin lỗi vì tiếng anh của tôi. :)

+0

Tôi vẫn không biết có gì sai với LIBS gốc + = "C:/Programs/opencv24/opencv_bin2/bin/*. dll" –

+0

bạn cần thêm .libs vì nó chứa thông tin về các hàm bên trong DLL, và thông tin này là cần thiết khi xây dựng dự án, vì vậy exe của bạn sẽ chạy sau đó kiểm tra những thông tin đó và sau đó tải DLL cần thiết. –

+0

Wajdy: Bạn có nghĩa là không phải là một phần mở rộng .lib hoặc .libs, mà là bất kỳ tệp nào trong thư mục lib? Có lẽ những người trong opencv_bin/lib và không opencv_bin/install/lib.Nhưng khi tôi chỉ đơn giản là thay đổi -LC: \\ Chương trình \\ opencv24 \\ opencv_bin2 \\ bin \ ... thành -LC: \\ Chương trình \\ opencv24 \\ opencv_bin2 \\ lib \ ... thì nó không hoạt động . Bạn đang nói rằng giải pháp với \\ bin \ ... là sai? –