Java OpenCV 环境搭建及入门

11 篇文章 5 订阅

怎么配置环境:
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("\nRunning 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下,两个getPath()后面要加上.substring(1),因为返回值是"/C:/xxx"这样的绝对路径;

2.opencv3.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;然后把Mat image = Highgui.imread(“”)改为Mat image = Imgcodecs.imread(“”)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值