java+opencv_opencv使用教程

java+opencv_opencv使用教程opencv简介OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法(百度百科)。opencv安装Windows1.到OpenCV官网下…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1e685c5fd3dd699094c6518d2db1f6db.png

opencv 简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法(百度百科)。

opencv 安装

Windows

1.到OpenCV官网下载你需要的版本。

b040927b80a6f3a97ecd11db3b8828ea.png

2.执行 opencv-4.4.0-vc14_vc15.exe

48a4f73d10b52266212b077207bc607b.png

a8929b8d24640709a142c146c3f62cb5.png

4983e7cce6d8d4766fbd918e9b7e8a8e.png

3.配置环境变量

8ea8767acdf38ff378c3e5873e37d490.png

Centos

安装依赖包

yum install cmake gcc gcc-c++ gtk+-devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm build-essential ant

1.下载opencv-4.4.0.zip并解压缩

wget https://github.com/opencv/opencv/archive/4.4.0.zip

2.新建一个build文件夹

cd opencv

mkdir build

cd build

3.Cmake

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

注意“to be build”要包含“Java”,同时JAVA_HOME要正确配置。

make

make 命令安装的时间有点长,可以撸一把王者,电脑好点的话,可以执行

make -j4

(在多核宿主机上,可以通过-j选项来提高make命令的执行速度,单核机器就不要尝试了)

sudo make install

4.等 make install 执行完毕之后,需要对环境变量进行配置

cp -r /usr/local/share/java/opencv4/libopencv_java440.so /usr/lib

配置完成后重新打开终端,使得配置生效

5.opencv的测试

ldconfig -v | grep opencv

检查opnecv是否安装成功

java 集成 opencv

f18012e6a046a119b3718ff1dafc96a6.png

1.将 opencv-440.jar 复制到自己的java项目里面

0d74a922d5e153be47517d9984e5f245.png

7f020515ff89e7c7a86e2764d4b008cd.png

57065bbabed8f39d5a99b3c831cb9778.png

7ba7f2dd5e3a78c2ecfe2cc1d45768e2.png

2.将 opencv_java440.dll 复制到 JAVA_HOME\jre\bin 目录

8f75cf1ad850db47f929d2545d4ac43b.png

7ba10d426fdb620e0ee0a55bbea792fb.png

java 代码测试

import org.opencv.core.Core;

import org.opencv.core.CvType;

import org.opencv.core.Mat;

public class Hello

{

public static void main( String[] args )

{

System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

Mat mat = Mat.eye( 3, 3, CvType.CV_8UC1 );

System.out.println( “mat = ” + mat.dump() );

}

}

输出

mat = [ 1, 0, 0;

0, 1, 0;

0, 0, 1]

常见问题

no opencv_java440 in java.library.path

388bcdd0493ca15f05d2a23916121264.png

这是因为没有加载到 opencv_java440.dll ,将 opencv_java440.dll 复制到 JAVA_HOME\jre\bin 目录就可以了。

2. cmake 版本太低

wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz

# 解压文件

tar zxvf cmake-3.9.2.tar.gz

cd cmake-3.9.2

./configure

make

sudo make install

3. 下载 ippicv_2020_lnx_intel64_20191018_general.tgz 很慢

# 用迅雷先下载好,https://raw.githubusercontent.com/opencv/opencv_3rdparty/ippicv/master_20191018/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz

# 指定目录

vim 3rdparty/ippicv/ippicv.cmake

de22aff4c2499ebedb72c5b8e6009ba0.png

将 https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/ 替换成 ippicv_2020_lnx_intel64_20191018_general.tgz所在的目录

“file:~/ippicv/” #(仅供参考,根据自己的路径填写)

参考

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186454.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • UML图画法_画用例图的步骤

    UML图画法_画用例图的步骤一.用例图的作用用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。二.用例图包含的元素 1.参与者(Actor)  表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小…

  • [转]Delphi中QuotedStr介绍及使用

    [转]Delphi中QuotedStr介绍及使用转自:http://www.360doc.com/content/13/0524/09/7873422_287679198.shtml使用S:string;qry2.SQL.add(‘select*fromawhereb=’+s);出现错误。询问高手之后使用qry2.SQL.add(‘select*fromawhereb=’+QuotedStr(s));正常。QuotedS…

    2022年10月17日
  • SSE的学习

    SSE的学习看到intel向量化指令在矩阵乘应用中的评估_softee的专栏-CSDN博客中描述的效果而心动,然后咨询了下博客园博主,我稍微看了下《simdforc++developers》感觉SSE这些指令更像一种寄存器语言,乍一接触略不适应。然而我的疑问是:1、如果对一个步骤我用了TBB/MKL/CILK这种易操作的并行指令,内部能否再用SSE指令,能否性能进一步提升?或者像OMP一样不适合嵌套并行?2、这种向量化指令是否只对无依赖性流程可用?对dst(i)=src(i)+dst(i-1);…

    2022年10月31日
  • Pytest(6)重复运行用例pytest-repeat「建议收藏」

    Pytest(6)重复运行用例pytest-repeat「建议收藏」前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

  • Centos搭建Ansible

    Centos搭建Ansible

  • 如何让用html制作404页面,网站404页面怎么做?

    如何让用html制作404页面,网站404页面怎么做?原标题:网站404页面怎么做?404页面具体怎么做:首先,你可以简单的做一个html页面,把它命名为:404.html页面;如果不会制作,最简单的办法就是找任何一个比较有名的网站,把它的404页面另存为下来,然后修改上面的文字,以及URL为自己的文字信息,再保存好上传到你网站的根目录就行了。404页面的注意点:我们做404页面不能让它直接跳转到首页,不然,首页有可能会遭到被K。怎样让错误页面跳转到…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号