众所周知,opencv是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库。学习一个新的软件库其实很简单,只要看一遍他的官网文档,试着玩玩它提供的接口,差不多就能学会。当然了,opencv的官网上还有自己的课程,我瞅了一眼都是国外大神将的课,由于囊中羞涩外加英语水平有限,就不看视频了。看文档的话,因为是官网部署在国外的服务器,国内点一下就很卡,要想流畅的看文档需要翻墙,自学的成本进一步增加,如果哪位大神有下载下来最新版的中文文档,求你私聊我。
opencv可以在很多种操作系统上运行。今天我仅提供在windows运行opencv的方法。OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口。我仅简单的展示Java接口的图片打开、展示和写入。具体其他的接口功能,自己看文档。
点上面的链接下载opencv会出现以下界面。下载下来是一个exe文件,点击运行安装就会得到一个opencv的文件夹,一定要知道自己把opencv安装到哪了。因为要配置环境变量。
安装完之后,得到一个文件夹,记下他的路径。
配置环境变量为:D:路径\opencv\build\x64\vc15\bin(如果是64位系统就x64,如果是32位系统就x32)
接下来就用IDEA随便新建一个Java项目。在项目根路径下新建一个opencv文件夹,复制D:\opencv\opencv\build\java下的文件到项目里。
接下来运行以下代码:
/**
* opencv的打开图片、展示、写图片
*/
public class HelloOpencv {
static {
//在使用OpenCV前必须加载Core.NATIVE_LIBRARY_NAME类,否则会报错
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
// 1. 加载由libname参数指定的系统库
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// 2. 打开图片
Mat mat = Imgcodecs.imread("D:/1.jpg");
// 3. 展示图片
HighGui.imshow("展示图片", mat);
HighGui.waitKey();
// 4. 写图片
Imgcodecs.imwrite("D:/opencv/1-copy.jpg", mat);
}
}
肯定会报错找不到库路径。因为没有配置dll的路径。在虚拟机上配置一下就ok了。
-Djava.library.path=$PROJECT_DIR$\opencv\x64
首先在d盘根目录下,放一张图片1.jpg,再运行这个程序,会复制一张图片D:/opencv/1-copy.jpg。如果你能找到这个图片,说明环境配置成功了。