質問編集履歴

2 ライブラリの写真を追加しました。

r.murasaki

r.murasaki score 14

2017/01/24 11:38  投稿

OpenCvのMat型の変数初期化でエラーが発生してしまいます。
###前提・実現したいこと
はじめまして。
現在、Windows + java(1.8.0_112)の環境でローカル上で動く、openCvを使った画像のコピー(変色)プログラムをEclipseを使って作りたいと考えています。
###発生している問題・エラーメッセージ
環境変数のパス、Eclipseの外部ライブラリのパスは通っておりますが、Math型の変数を初期化すると下記のエラーが発生してしまいます。
```
エラーメッセージ
```
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat()J
###該当のソースコード
package com.example.appium;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class ImgConv {
   static{ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }
   public static void main(String[] args) {
       String path_in = "C:/flappy_bird/FlappyBird/Assets/flappy_assets/images/sample.bmp";
       String path_out = "C:/flappy_bird/FlappyBird/Assets/flappy_assets/images/sample_gray.bmp";
       System.out.println(System.getProperty("java.version"));
       System.out.println(System.mapLibraryName(""));
       Mat mat_src = new Mat(); //ここでエラーが発生します。
       Mat mat_dst = new Mat();
       mat_src = Imgcodecs.imread(path_in);                          // 入力画像の読み込み
       Imgproc.cvtColor(mat_src, mat_dst, Imgproc.COLOR_BGR2GRAY); // カラー画像をグレー画像に変換
       Imgcodecs.imwrite(path_out, mat_dst);                        // 出力画像を保存
   }
}
###試したこと
パスの確認、元になっているクラス、C++ソースの確認(クラスCore.classの中にメソッドMathはあり、下記のようになっていました
public Mat()
   {
       nativeObj = n_Mat();
       return;
   }
そして、n_Matは下記のようになっております。
// C++: Mat::Mat(int rows, int cols, int type)
   private static native long n_Mat(int rows, int cols, int type);
しかし、cppファイルを見るとn_Matに類するメソッドが見当たらないのが気になります)
###補足情報(言語/FW/ツール等のバージョンなど)
Windows7
Java ver 1.8.0_112
Eclipse Meon .2 Release(4.6.2)
OpenCv 3.2.0
よろしくおねがいいたします。
よろしくおねがいいたします。
1/24 追加
下記に、この質問をした際のライブラリの状態を添付いたします。
![イメージ説明](13458c4bd8d14e3eda02a8a77ac190fb.png)
  • Java

    20046 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Eclipse

    2456 questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

  • OpenCV

    2283 questions

    OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

1 タイトル

r.murasaki

r.murasaki score 14

2017/01/20 18:53  投稿

OpenCvのMat型の変数初期化でエラーが発生する
OpenCvのMat型の変数初期化でエラーが発生してしまいます。
###前提・実現したいこと
はじめまして。  
 
現在、Windows + java(1.8.0_112)の環境でローカル上で動く、openCvを使った画像のコピー(変色)プログラムをEclipseを使って作りたいと考えています。
###発生している問題・エラーメッセージ
環境変数のパス、Eclipseの外部ライブラリのパスは通っておりますが、Math型の変数を初期化すると下記のエラーが発生してしまいます。
```
エラーメッセージ
```
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat()J
###該当のソースコード
package com.example.appium;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class ImgConv {
   static{ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }
   public static void main(String[] args) {
       String path_in = "C:/flappy_bird/FlappyBird/Assets/flappy_assets/images/sample.bmp";
       String path_out = "C:/flappy_bird/FlappyBird/Assets/flappy_assets/images/sample_gray.bmp";
       System.out.println(System.getProperty("java.version"));
       System.out.println(System.mapLibraryName(""));
       Mat mat_src = new Mat(); //ここでエラーが発生します。
       Mat mat_dst = new Mat();
       mat_src = Imgcodecs.imread(path_in);                          // 入力画像の読み込み
       Imgproc.cvtColor(mat_src, mat_dst, Imgproc.COLOR_BGR2GRAY); // カラー画像をグレー画像に変換
       Imgcodecs.imwrite(path_out, mat_dst);                        // 出力画像を保存
   }
}
###試したこと
パスの確認、元になっているクラス、C++ソースの確認(クラスCore.classの中にメソッドMathはあり、下記のようになっていました
public Mat()
   {
       nativeObj = n_Mat();
       return;
   }
そして、n_Matは下記のようになっております。
// C++: Mat::Mat(int rows, int cols, int type)
   private static native long n_Mat(int rows, int cols, int type);
しかし、cppファイルを見るとn_Matに類するメソッドが見当たらないのが気になります)
###補足情報(言語/FW/ツール等のバージョンなど)
Windows7
Java ver 1.8.0_112
Eclipse Meon .2 Release(4.6.2)
OpenCv 3.2.0
OpenCv 3.2.0
よろしくおねがいいたします。
  • Java

    20046 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Eclipse

    2456 questions

    Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

  • OpenCV

    2283 questions

    OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る