开发平台:WIN10
时间2017-12月
Netbeans:同期最新版本
OPENCV版本:同期OPENCV3最新版本
小体会:安卓的开发环境一直搭建得有问题、就先用java进行图像处理开发,后来移植到安卓的时候、除了imread,imwrite和android上不能用、其他语句直接复制过去就能用,还是挺方便的。
Netbeans配置OPENCV
使用Netbeans IDE进行开发、正常下载安装即可;
1. 添加OPENCV库
在上边菜单栏选择 工具,然后选择库,弹出如下窗体
新建库-添加JAR/文件夹-添加OPENCV库即可
[访问www.opencv.org下载]
解压后、进入opencv/build/java,导入jar文件;
javadoc可以添加javadoc文件夹、也可直接添加网址:
https://docs.opencv.org/java/3.0.0/
2. 为项目添加OPENCV库:
新建项目、打开左侧项目文件夹、右击;
右键项目、添加库
选择之前导入的库,添加库
选择之前添加的库、然后添加库即可;
然后还差一步,右键项目、属性、弹出的窗口中选择运行、再VM选项中加入
·-Djava.library.path="D:\OPENCV\opencv\build\java\x64"
双引号内是自己的OPENCV的文件夹路径、如果是32位电脑则选X86;
右键项目、属性、运行、VM添加字段-Djava.library.path="D:\OPENCV\opencv\build\java\x64"
3.OPENCV小试用牛刀
在程序的第一行需要添加:
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
然后开始编程:
简单熟悉下一下几个基础的操作:
矩阵 Mat
,Mat img =new Mat();
初始化图像;
//图像打开、存储操作
Imgcodecs.imwrite();
Imgcodecs.imread();
//颜色转换
Imgproc.cvtColor(src, img_bw, Imgproc.COLOR_BGR2GRAY);
//自适应阈值
Imgproc.threshold(src, img_bw, 0, 255, Imgproc.THRESH_OTSU);
//打开灰度图像,参数 0;
Imgcodecs.imwrite("./demo.jpg",0);
测试程序:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package opencv_demo; //需要根据实际项目进行修改
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
*
* @author liu
*/
public class OPENCV_DEMO {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.out.println("在项目文件夹添加照片");
Mat Gray = new Mat();
Mat Src = new Mat();
//注意修改图片路径
Src = Imgcodecs.imread("./Lena.png");
Imgproc.cvtColor(Src, Gray, Imgproc.COLOR_RGB2GRAY);
Imgcodecs.imwrite("./Lena_gary.png", Gray);//保存
System.out.println("在项目文件夹输出灰色照片");
}
}
注意事项:
- 如果运行失败、检查上一步的项目属性-运行 添加
-Djava.library.path="D:\OPENCV\opencv\build\java\x64"
//路径以实际为准 - 需要自己把图片添加到项目的路径下,名称改为
Lena.png
结果
如运行成功,结果如下,查看项目文件夹的图片;
IDE输出结果
图像处理成功,生成灰度图
网友评论