java中使用opencv

Java + opencv学习:在Eclipse下配置基于Java的OpenCV开发环境

2016-04-08 17:43 6491人阅读 评论(0) 收藏 举报

 分类:

OpenCV学习(10) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

最近研究OpenCV想用java进行开发,因此研究了一下怎么在Eclipse中配置基于java的Opencv.

第一步:先到OpenCV官网下载你想要的版本,假设使用的是2.4.6版本。这里附上下载地址:http://opencv.org/downloads.html,在官网下载你想要的版本,解压到本地的某个目录。比如 D:/OpenCV/。

第二步,打开Eclipse,并找到Window –> Preferences.

第三步:进入Preferences菜单后,找到Java –> Build Path –> User Libraries ,然后点击New

第四步:点击上面对话框的New之后,会弹出一个对话框,如下图所示,在里面填入一个名字,如OpenCV-2.4.6

第五步:点击右侧的Add External JARs

第六步:点击后,浏览文件夹找到前面解压的文件夹,D:\OpenCV\build\java\,选择里面的opencv-246.jar,添加完jar包后,展开刚才添加的jar包,选择Native library location,点击右侧的Edit按钮,对其进行编辑

第七步:点击 External Folder...选择目录到:D:\OpenCV\build\java\x64\,然后点击ok   ,如果你使用的32位系统则选择x86文件夹

第八步:配置完成后的结果应该是这样的。

这样就配置完成了。下面进行一个简单的测试。创建一个Java Project,然后在项目上右键,Build Path ---->Configure Build Path ,点击Libraries选项卡,点击下面的Add Library,弹出来的对话框中选择“User Library”。

然后勾选OpenCV-2.4.6,这样就添加完成了。

添加完成后的效果如下:

下面就可以进行测试了,可以使用如下的代码进行测试。

[java] view plain copy

  1. import org.opencv.core.Core;
  2. import org.opencv.core.CvType;
  3. import org.opencv.core.Mat;
  4. public class Hello
  5. {
  6. public static void main( String[] args )
  7. {
  8. System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
  9. Mat mat = Mat.eye( 3, 3, CvType.CV_8UC1 );
  10. System.out.println( "mat = " + mat.dump() );
  11. }
  12. }
package testOpencvJava;

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;

import org.opencv.core.*;

import org.opencv.imgproc.*;
import org.opencv.highgui.*;

public class Hello {

//    public static void main(String[] args) {
//    // TODO Auto-generated method stub
//
//    }

public static void main( String[] args ) 

System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); 
Mat mat = Mat.eye( 3, 3, CvType.CV_8UC1 ); 
mat = Mat.ones( 100, 100, CvType.CV_8UC1 );

double [ ] valsSca= {255,255,255 };
org.opencv.core.Scalar s = Scalar.all(255.0) ;//= "";//"";// = valsSca ;
s.set(valsSca);
double [] widHei = { 100.0,100.0 };
org.opencv.core.Size sz=new Size(widHei) ;//= Size( );
sz.set( widHei );
sz.height=100;
sz.width=100;
mat=new Mat( sz, 0 , s );
// mat=Mat();
// mat.nativeObj = mat.nativeObj* 100;

// System.out.println( "mat = " + mat.dump() );

// imshow( "mat", mat );
Highgui.imwrite( "mat.jpg", mat);

}


}

 
package testOpencvJava;

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("wangxinling.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 = "wangxinling-ouput.png";
System.out.println(String.format("Writing %s", filename));
Highgui.imwrite(filename, image);
}
}
时间: 2024-08-02 20:51:04

java中使用opencv的相关文章

Linux(Ubuntu 16.04)中安装OpenCV + OpenCV_Contrib

近两个月来接触了Linux系统,在老板的建议下翻了Ubuntu的牌子,我安装的版本是16.04,用习惯之后感觉蛮好的,比Windows要强.好啦,废话不说啦,下面开始说在Ubuntu中安装OpemCV+OpenCV_Contrib. 首先,准备一下开发环境: Ubuntu 16.04 64位 cmake ant jdk git python 接下来,从github中down下OPenCV + OpenCV_Contrib库,可以从https://github.com/opencv上下载(注意版本

在IntelliJ IDEA 13中配置OpenCV的Java开发环境

准备工作: 下载IDEA 13(这里以版本13为例,后面简称IDEA): 下载Java JDK(用于配置基本的Java开发环境): 下载OpenCV 2.4.9(这里以版本2.4.9为例,据这篇文章说,OpenCV的2.4版本开始支持Java API接口): 安装IDEA: 安装JDK,并在IDEA中配置JDK: 将下载好的OpenCV 2.4.9解压到某个目录下,例如,解压后的路径为“D:\opencv”,该路径下包含build文件夹和source文件夹. 配置开发环境: 1)在IDEA中新建

Android学习——在Android中使用OpenCV的第一个程序

刚开始学习Android,由于之前比较熟悉OpenCV,于是就想先在Android上运行OpenCV试试 =================================================================================== 1.环境配置 JDK Eclipse ADT CDT Android SDK Android NDK cygwin OpenCV for Android 2.4.9 这部分网上很多,我就不再赘述了,可以参考:http://bl

java中的三元运算符详解

最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题.鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故在此总结,当然仅为个人观点,水平有限,不足之处,还请大家多多指出,互相交流学习. 什么是java三元运算符呢?无疑其操作元有三个,第一个是条件表达式,剩余两个为值,条件表达式为真时运算取第一个值,为假时取第二个值. 其示例代码如下:boolean a = 20 < 45 ? true : false

java中BigDecimal的学习

干着java的活,但是看的都是一些偏底层的东西(或者我根本就没有看),有点荒废了java的学习. 最近一直在用到一个类是BigDecimal,但都是模棱两可地在那儿用,并没有深入研究这个类的细节,感觉不能再拖了. BigDecimal,从名字来看就是进行大数运算的,不光这样,还广泛用于小数的精确运算. 当你接触到和钱有关的计算的时候,这个类还是很有用滴. 先来看一个例子 1 package com.tuhooo.bigdecimal; 2 3 /** 4 * Created by tuhooo

Java 中几个重要的关键字

Java中的关键字特别多,大致如下: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements interface native new static strictfp synchronized transient volatile 程序控制 break continue return do while if else for instanceof switch case default 异常

深入剖析Java中的装箱和拆箱

阅读目录 一.什么是装箱?什么是拆箱?二.装箱和拆箱是如何实现的三.面试中相关的问题 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱.拆箱相关的问题. 回到顶部 一.什么是装箱?什么是拆箱? 我们知道 Java为每种基本数据类型都提供了对应的包装器类型,至于为什么会为每种基本数据类型提供包装器类型在此不进行阐述,有兴趣的朋友可以查阅相关资料.在Java SE5之前,如果要生成

JAVA中只有值传递

今天,我在一本面试书上看到了关于java的一个参数传递的问题: 写道 java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? 我毫无疑问的回答:"引用传递!",并且还觉得自己对java的这一特性很是熟悉! 结果发现,我错了! 答案是: 值传递!Java中只有按值传递,没有按引用传递! 回家后我就迫不及待地查询了这个问题,觉得自己对java这么基础的问题都搞错实在太丢人! 综合网上的描述,我大概了解了是怎么回事,现在整理如下,如有不对之处望大神提出! 先来看一个作为程序员都熟

Java中如何优雅正确的终止线程

Java中终止线程的方式主要有三种: 1.使用stop()方法,已被弃用.原因是:stop()是立即终止,会导致一些数据被到处理一部分就会被终止,而用户并不知道哪些数据被处理,哪些没有被处理,产生了不完整的"残疾"数据,不符合完整性,所以被废弃.So, forget it! 2.使用volatile标志位 看一个简单的例子: 首先,实现一个Runnable接口,在其中定义volatile标志位,在run()方法中使用标志位控制程序运行 public class MyRunnable i