在linux上写java用idea,Linux中OpenCV安装及在Intellij Idea中Java调用

安装OpenCV

1.安装依赖包

OpenCV依赖如下包:

GCC 4.4.x or later

CMake 2.6 or higher

Git

GTK+2.x or higher, including headers (libgtk2.0-dev)

pkg-config

Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)

ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev

[optional] libtbb2 libtbb-dev

[optional] libdc1394 2.x

[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev

在终端中执行如下命令安装依赖包:

[compiler] sudo apt-get install build-essential

[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2.获取OpenCV源码

github地址:https://github.com/opencv/opencv

官网地址:http://opencv.org/downloads.html

除Windows以外,其他的系统都需要手动源码编译。

3.编译OpenCV源码

解压压缩包到~/opencv-2.4.13文件夹

进入安装目录执行如下命令

cd ~/opencv-1.2.4

mkdir release

cd release

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

bdfb6e62a5ef17f94337cb2592f15311.png

依赖包安装完成

8d85e5ada98be8b816b95e6467fb5bad.png

release文件夹中产生很多文件

cc63d6c340c396e459e502749880d7a1.png

进入release目录执行如下命令

make

sudo make install

执行make命令

6753605b1ddb6141b1384da05d87aca4.png

make命令执行完成(可能花半个多小时,中途还可能出现错误)

daa5d5a915a04ca63a10ce77d1fffd9e.png

执行sudo make install

d5c510bea0c61532b8fff810f0edb02a.png

等待编译完成,添加库路径及更新 sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

sudo ldconfig

安装完成后release/bin目录如下:

237758619e425956aea2b76e4a6b5f44.png

在IntellijIdea中使用OpenCV

建立Java项目

在Project Structure->Libraries中导入依赖包opencv-2413.jar(在~/release/bin下)

0f425bbe747337a3f783c957743988bf.png

编写Java测试代码 package org.fang.test;

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;

/*

* Detects faces in an image, draws boxes around them, and writes the results

* to "faceDetection.png".

*/

public class DetectFaceDemo {

public void run() {

System.out.println("\nRunning DetectFaceDemo");

// Create a face detector from the cascade file in the resources

// directory.

CascadeClassifier faceDetector = new CascadeClassifier(getClass()

.getResource("/lbpcascade_frontalface.xml").getPath());

Mat image = Highgui.imread(getClass().getResource(

"/AverageMaleFace.jpg").getPath());

// Detect faces in the image.

// MatOfRect is a special container class for Rect.

MatOfRect faceDetections = new MatOfRect();

faceDetector.detectMultiScale(image, faceDetections);

System.out.println(String.format("Detected %s faces",

faceDetections.toArray().length));

// Draw a bounding box around each face.

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));

}

// Save the visualized detection.

String filename = "faceDetection.png";

System.out.println(String.format("Writing %s", filename));

Highgui.imwrite(filename, image);

}

}

提交运行需要在Run/Debug Donfigurations中VM Options添加

-Djava.library.path=/home/fang/SoftWare/opencv-2.4.13/release/lib

4e3bb39dabe936ff3f3abb0d75f742a7.png

运行结果

29cb081eefcf312c2b3feb0b34b91975.png

The End

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值