###前提・実現したいこと
はじめまして。
現在、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
よろしくおねがいいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/23 01:24
2017/01/23 08:53
2017/01/23 13:16
2017/01/24 02:38 編集
2017/01/24 14:22
2017/01/25 05:25
2017/01/25 08:34