こんにちは。
JavaCV(OpenCV)をEclipse + Mavenで使用できる様に環境構築しております。
Mavenを使用しない場合の設定手順は、こちらに書かれているのですが、使用した方が便利なので、色々と試しているのですが上手くいきません。
参考にしているサイトは、下記になります。
Mavenを利用して、好きなJavaライブラリを環境に追加する。
サイトに習って、下記をpomファイルに追記しました。
pom.xml
1 <dependency> 2 <groupId>org.bytedeco</groupId> 3 <artifactId>javacv-platform</artifactId> 4 <version>1.4.2</version> 5 </dependency> 6 <dependency> 7 <groupId>org.bytedeco.javacpp-presets</groupId> 8 <artifactId>opencv-platform</artifactId> 9 <version>3.4.2-1.4.2</version> 10 </dependency> 11 <dependency> 12 <groupId>org.bytedeco.javacpp-presets</groupId> 13 <artifactId>ffmpeg-platform</artifactId> 14 <version>4.0.1-1.4.2</version> 15 </dependency>
ソースコードは下記になりますが、途中でエラーが発生しました。
Main.java
1package main; 2 3import java.io.IOException; 4 5import org.opencv.core.Mat; 6import org.opencv.core.Size; 7import org.opencv.imgcodecs.Imgcodecs; 8import org.opencv.imgproc.Imgproc; 9 10public class Main { 11 12 public static void main(String[] args) throws IOException { 13 14 // 15 //System.loadLibrary(Core.NATIVE_LIBRARY_NAME); //必要なのか不明 16 17 //ルートパス 18 String pathRoot = System.getProperty("user.dir"); 19 20 //ファイルパス 21 String pathFileFrom = pathRoot + "/src/sample.jpg"; 22 String pathFileTo = pathRoot + "/src/sampleOut.jpg"; 23 24 //マトリックス 25 Mat matFrom = Imgcodecs.imread(pathFileFrom); //<---- エラー発生 26 Mat matTo = Imgcodecs.imread(pathFileTo ); 27 28 //サイズ 29 int sizeX = 200; 30 int sizeY = 200; 31 32 //リサイズ 33 Imgproc.resize(matFrom, matTo, new Size(sizeX, sizeY)); 34 35 //保存 36 Imgcodecs.imwrite(pathFileTo, matTo); 37 } 38}
エラー内容は下記になります。
error.txt
1Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J 2 at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method) 3 at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:127)
jarファイルは、mavenから参照しているので追加の必要はないのかなと思ったのですが、どなたか原因が分かる方、ご教授頂けると幸いです。
2022/02/15 03:24