Java OpenCV環境の構築と入門
環境の構成方法:https://blog.csdn.net/zhouzhiwengang/article/details/86627369 eclipse Mavenに基づくopencv開発環境構築https://segmentfault.com/a/1190000000358809#articleHeader5 Day 12:OpenCV-Java開発者の顔検出https://www.cnblogs.com/yezhang/p/4006134.html IntelliJ IDEA 13でOpenCVを構成するJava開発環境https://blog.csdn.net/surferjin/article/details/83145808 idea構成opencv opencvライブラリを追加しましたjava.lang.UnsatisfiedLinkError:no opencv_java342 in java.library.path
起動テストコード:
これはネット上で見つけることができる比較的典型的なOpenCVテストを起動する小さなプログラムで、人の顔を認識し、人の顔を赤い枠で表示します.このプログラムにはいくつかの問題があります.
1.windowsでは、2つのgetPath()の後に.substring(1)を追加します.戻り値は「/C:/xxx」のような絶対パスです.
2.opencv 3.xバージョン後、一部のクラス名が変更されました:Highgui->Imgcodecs Core.rectangle->Imgproc.rectangle
詳細:opencv_JAva import org.opencv.highgui.Highgui、エラーの原因を提示します:1、OpenCV-3.0バージョンのライブラリにはopencv.highgui.Highguiというパッケージがありません.
2、opencv.highgui.Highguiパッケージのクラスimread、imwriteなどはimport org.opencv.imgcodecs.Imgcodecsに移動します.
3、import org.opencv.imgcodecs.Imgcodecsをインポートするだけです.そしてMatimage=Highgui.imread(")をMatimage=Imgcodecs.imread(")に変更します.
起動テストコード:
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.highgui.Highgui;
import org.opencv.objdetect.CascadeClassifier;
public class FaceDetector {
public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.out.println("
Running FaceDetector");
CascadeClassifier faceDetector = new CascadeClassifier(FaceDetector.class.getResource("haarcascade_frontalface_alt.xml").getPath());
Mat image = Highgui
.imread(FaceDetector.class.getResource("shekhar.JPG").getPath());
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
for (Rect rect : faceDetections.toArray()) {
Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height),
new Scalar(0, 255, 0));
}
String filename = "ouput.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}
これはネット上で見つけることができる比較的典型的なOpenCVテストを起動する小さなプログラムで、人の顔を認識し、人の顔を赤い枠で表示します.このプログラムにはいくつかの問題があります.
1.windowsでは、2つのgetPath()の後に.substring(1)を追加します.戻り値は「/C:/xxx」のような絶対パスです.
2.opencv 3.xバージョン後、一部のクラス名が変更されました:Highgui->Imgcodecs Core.rectangle->Imgproc.rectangle
詳細:opencv_JAva import org.opencv.highgui.Highgui、エラーの原因を提示します:1、OpenCV-3.0バージョンのライブラリにはopencv.highgui.Highguiというパッケージがありません.
2、opencv.highgui.Highguiパッケージのクラスimread、imwriteなどはimport org.opencv.imgcodecs.Imgcodecsに移動します.
3、import org.opencv.imgcodecs.Imgcodecsをインポートするだけです.そしてMatimage=Highgui.imread(")をMatimage=Imgcodecs.imread(")に変更します.