前提・実現したいこと
java8でOpenCV4.4.0を使って静止画を動画にしようとしています。まずはと思い同じ画像を任意の枚数重ねて動画にするという単純なものを作ってみました。メゾット名、引数名はごめんなさい。
発生している問題・エラーメッセージ
コンパイルは通りますが、実行時にエラーが出ます。「~~Error:」の後に具体的なことが書かれてない(他の例では○○がないよ!とかが英語で書かれている)ので理解ができません。
おそらく「fourcc」関連のことだと思って、いろいろなコーデックを試してみましたが、さっぱりです
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.videoio.VideoWriter.fourcc_0(CCCC)I at org.opencv.videoio.VideoWriter.fourcc_0(Native Method) at org.opencv.videoio.VideoWriter.fourcc(VideoWriter.java:348) at MkMovie.main(MkMovie.java:36)
該当のソースコード
java
1import java.io.*; 2import java.awt.*; 3import java.util.*; 4 5import org.opencv.core.*; 6import org.opencv.imgcodecs.*; 7import org.opencv.videoio.VideoWriter; 8import org.opencv.videoio.Videoio; 9 10public class MkMovie{ 11 Mat takedImage; 12 13 public void nanika(String image){ 14 //try { 15 takedImage = Imgcodecs.imread(image); 16 //}catch(IOException e){ 17 //} 18 } 19 20 public void nanika2(String time, VideoWriter Mov){ 21 int totalFrame = Integer.valueOf(time)*30; 22 23 24 for(int i=0; i<totalFrame; i++){ 25 Mov.write(takedImage); 26 } 27 28 } 29 30 public void bideotsukuru(Mat frame){ 31 32 } 33 34 public static void main(String[] args) { 35 Size frameSize = new Size(1280, 720); 36 int fourcc = VideoWriter.fourcc('D','I','V','X'); 37 VideoWriter gMovie = new VideoWriter("generatedMovie.avi", fourcc, 30, frameSize, true); 38 if(!gMovie.isOpened()){ 39 System.out.println("Cant Open"); 40 } 41 MkMovie go = new MkMovie(); 42 43 //gMovie.open(); 44 go.nanika(args[0]); 45 go.nanika2(args[1], gMovie); 46 gMovie.release(); 47 } 48 49 50}
補足情報(FW/ツールのバージョンなど)
windows10
コマンドラインで実行してます。
コンパイル
javac MkMovie.java
実行
java MkMovie ./gazou.jpg 7
CLASSPATHは
.;C:\OpenCV\opencv\build\java\opencv-440.jar
のみ設定
システム環境変数は「Path」に
C:\OpenCV\opencv\build\x64\vc15\bin
C:\OpenCV\opencv\build\java\x64
C:\OpenCV\opencv\build\bin
を追加してます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/21 12:06