2016-09-13 10 views
1

プロジェクトhereを設定しました。これは、基本的にグラデルプロジェクトhereのサンプルのコピー/ペーストです。OpenCVをC++プロジェクトで構築する方法

私の次のステップは、hello worldですが、OpenCVフレームワークです。それはメモリ内の画像を読んで表示します。正確に言うと、あなたが見ることができるようにmain.cppは、我々はよりその

#include <stdio.h> 
#include <opencv2/opencv.hpp> 
using namespace cv; 
int main(int argc, char** argv) 
{ 
    if (argc != 2) 
    { 
     printf("usage: DisplayImage.out <Image_Path>\n"); 
     return -1; 
    } 
    Mat image; 
    image = imread(argv[1], 1); 
    if (!image.data) 
    { 
     printf("No image data \n"); 
     return -1; 
    } 
    namedWindow("Display Image", WINDOW_AUTOSIZE); 
    imshow("Display Image", image); 
    waitKey(0); 
    return 0; 
} 

ように私はOpenCVのヘッダが含まれますが、私はGradleの経由libに自分自身を追加することに苦労しています。私はおそらくprebuilt方法を使用する必要がありますが、私は失敗します。

答えて

0

私はあなたがヘッダや構築済みのライブラリのリンキングを設定する必要があると思う:

私はあなたのGradleプラグインが何であるかを知らないので、私は通常、アンドロイドで行うが、私はそれが動作することを保証することはできません。 しかし、構文が変わる可能性があるグラデルのバージョンによっては、ヒントとして使うことができます。

まず、あなたのOpenCVのディレクトリを定義します。

opencv.dir="the site where opencv headers are" 

後の例のopencv_coreがより3rpartyの依存関係を持つことになりますため、中に追加してみてください、おそらくあなたのheaders.srcDir

repositories { 
    libs(PrebuiltLibraries) { 
    opencv_core { 
    headers.srcDir "your opencv.dir" 
     binaries.withType(StaticLibraryBinary) { binary -> 
     // This closure will be executed once for every buildType/platform combination 
     def variantDir = binary.targetPlatform.architecture.name == 'i386' ? 'Win32' : 'x64' 
     staticLibraryFile = "path/to/library/${variantDir}/opencv_core.so" 
     } 
    } 
    opencv_another_lib { 
    headers.srcDir "your opencv.dir" 
     binaries.withType(StaticLibraryBinary) { binary -> 
     // This closure will be executed once for every buildType/platform combination 
     def variantDir = binary.targetPlatform.architecture.name == 'i386' ? 'Win32' : 'x64' 
     staticLibraryFile = "path/to/library/${variantDir}/opencv_another_lib.so" 
     } 
    } 
    } 

を定義し、あなたのOpenCVのLIBSを定義します同じ方法。

こちらがお役に立てば幸いです。

乾杯。

Unai。

関連する問題