Java OpenCV環境の構築と入門

2438 ワード

環境の構成方法: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
起動テストコード:
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(")に変更します.