java opencv 平移_Java中使用opencv

Java中使用opencv

Java中使用opencv

零、前言

作为图像处理出身,不仅仅要会C++图像处理、matlab图像处理、python图像处理、最起码也得会java图像处理,当然我最终还都用的是opencv这个机器视觉库了。今天简单介绍一下java中如何使用opencv。

一、配置库

(1)官网下载opencv,在opencv\build\java\以及opencv\build\java\x64下提取jar包以及动态库。

(2)以springboot举例,在resources下创建lib/opencv文件夹,并将这两个包放进去。

2beec509a2d860ae6b0b9166daaff8db.png

(3) 在pom.xml添加依赖如下(或者其他方式添加依赖均可)

org

opencv

system

${project.basedir}\src\main\resources\lib\opencv\opencv-440.jar

注意版本要修改成你自己opencv的版本。

至此,配置完成。

二、其他知识

在java中调用dll:

// 加载动态库

URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java440.dll");

System.load(url.getPath());

三、简单的例子

(1)创建一个springboot项目,在测试类中编写代码

读图像以及灰度化:

package testopencv.demo;

import org.junit.jupiter.api.Test;

import org.junit.runner.RunWith;

import org.opencv.core.CvType;

import org.opencv.core.Mat;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

import java.net.URL;

import static org.opencv.highgui.HighGui.imshow;

import static org.opencv.highgui.HighGui.waitKey;

import static org.opencv.imgcodecs.Imgcodecs.imread;

import static org.opencv.imgcodecs.Imgcodecs.imwrite;

import static org.opencv.imgproc.Imgproc.COLOR_RGB2GRAY;

import static org.opencv.imgproc.Imgproc.cvtColor;

@RunWith(SpringRunner.class)

@SpringBootTest

class DemoApplicationTests {

/**

* @return

* @Description

* @Param

* @Author zhangsan

* @Date 2020.09.05 9:43

**/

@Test

public void testOpencv() throws Exception {

// 解决awt报错问题

System.setProperty("java.awt.headless", "false");

System.out.println(System.getProperty("java.library.path"));

// 加载动态库

URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java440.dll");

System.load(url.getPath());

// 读取图像

Mat image = imread("C:\\Users\\admin\\Pictures\\hello.jpg");

if (image.empty()) {

throw new Exception("image is empty");

}

imshow("Original Image", image);

// 创建输出单通道图像

Mat grayImage = new Mat(image.rows(), image.cols(), CvType.CV_8SC1);

// 进行图像色彩空间转换

cvtColor(image, grayImage, COLOR_RGB2GRAY);

imshow("Processed Image", grayImage);

imwrite("D://hello.jpg", grayImage);

waitKey();

}

}

效果:

deca5d7568eeb352a048b2892ac9c5a1.png

四、结束

简单介绍了java使用opencv的方法,后续可能会基于springboot做一些web方面图像处理的功能,做人不能局限,技多不压身,只能显得更屌丝而已。我就是我,不一样的小马哥。

Java中使用opencv相关教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

子域名跨越的问题

子域名不支持ajax直接提交,但支持form表单直接提交。

Linux利用PROMPT_COMMAND实现审计功能

这个系统审计,记录什么用户,在什么时间,做了什么操作。 然后将查到的信息记录到一个文件里。一。 配置1. 在/etc/profile 文件的最后,添加如下2行代码:export HISTORY_FILE/var/log/File_history/date %Y-%m-%d.logexp…

CentOS7 安装 NextCloud

NextCloud 的安装依赖LAMP环境,即 Linux Apache MySQL(Mariadb) PHP,所以在装 NextCloud前最好先装好这些,并且保证已经可用。 为了方便,本文在运行shell命令时都是以管理员用户身份运行(root权限下运行&#xff0…

jQuery 插件取url参数[jquery.url.js]的使用以及文件下载

方法一、 如题,直接上调用代码: jQuery.url.param("c") “c”就是当前url中的参数,记得要引用jquery.js和jquery.url.js jquery.url.js 下载 方法二、 function GetQueryString(name) {var reg new RegExp("(^|&)"…

java 存储png文件_vue图片上传及java存储图片(亲测可用)

1.前言在使用elementui的upload组件时,我一直无法做到上传的图片和其他数据一起提交。单纯的上传文件,java的存储图片的方式也有局限性。我知道的后端保存图片有两种方式:一种是直接存储到数据库中(base65和blob都能做到),一种是存储在服务器上的一个文件夹,数据库保存图片地址…

看视频学编程之最最基础的基础(1)

------- Windows Phone 7手机开发、.Net培训、期待与您交流! ------- C#语法: 1、从上到下一条条的依次执行。过去的就让他过去吧,不会返回头执行:int i13;int i25;int i3i1i2;i19;。大小写敏感。String和string 都行是另外一个问…

苹果系统使用之输入法的呈现与设置问题

新装的系统,总是纠结的出现各种问题。今天解决的就是装了Mac OS X 10.6(苹果系统)之后,输入法找不到,用快捷不能设置的问题。 刚开始使用mac os x 系统,其实说用也谈不上,因为本人是使用公司的电…

利用Seafile搭建私有文件同步云盘

安装 Seafile 所需环境 如果你的CVM系统为Ububtu系统,请查看Ububtu系统安装教程,如果系统为CentOS,请参考CentOS操作系统安装教程,本文以Ubuntu Server 16.04.1 LTS为例。 Ubuntu系统 这里我们使用apt包管理器进行安装&#xf…

java更改用户邮箱_git修改user.name 和user.email

今天刚刚入门了下git,,然后初始化的时候将用户名弄错了。。。就很气啊。然后网上找了半天都找不出一个可靠的修改全局用户名和邮箱的方法。。最后还是自己摸索出来了。。其实也很简单。首先进入git bash0:输入$ git config --list可以查看配置…

js堆栈溢出的问题

js是最令程序员头疼的问题了,不是语法也不是使用头疼,而是调试头疼,虽然有很方便的各种各样的调试工具,但经管这样有时候一个疏忽的小问题,会导致各种各样的奇怪问题的出现,今天笔者的同事就出现了这样的问…

halcon 17 cuda cudnn 深度学习环境搭建

如果你想安装halcon17,那么很简单,硬盘剩余空间2G,内存超过256M,操作系统win7以上即可。 但显然我们的要求不仅如此,因为我们期待已久的深度学习功能。 详细要求见下表 必备环境:电脑必须要有 NVIDIA 独立显卡&#x…

给java程序员网址_程序员常用网址,必须收藏

金山快盘 http://www.kuaipan.cn/login/ yijianfeng_vip163.com115 网盘 http://my.115.com/ yijianfeng_vip163.com.六间房图片外链刷流量工具-软件 http://www.safe-120.com/sites/yijianfeng/sh…

Format Currency Sample

2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"&…

jQuery.html()方法ie下不能设置html代码的问题

jQuery一般来说还是很好用的&#xff0c;但有时候它也会有些问题的&#xff0c;比如jQuery的html()方法设置html代码&#xff0c;在一种情况下&#xff0c;ie6、ie7、ie8 下是不能设置html代码的。本文说的问题只针对ie8&#xff08;包括ie8&#xff09;以下的浏览器。 1.什么情…

深度学习-服务端训练+android客户端物体识别实战(caffe入门教程+mobilenet+ncnn+android)

文章目录 背景 物体识别简介 自动驾驶 淘宝京东使用物体识别技术公司业务需求 深度学习简介 深度学习的位置 深度学习概念深度学习优势 深度学习基础知识 感知机 激活函数多层感知机卷积神经网络 卷积层 * 池化层 模型训练 前向传播 * 反向传播与参数优化 深度学习服务端框…

java数组怎么倒循环_java – 用于数组倒计时的反向循环

我收到错误..Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10at Reverse.main(Reverse.java:20).语法没有错,所以我不确定为什么编译时会出错&#xff1f;public class Reverse {public static void main(String [] args){int i, j;System…

解压zip,解决中文乱码

Project p new Project(); Expand e new Expand(); e.setProject(p); e.setSrc(file); e.setOverwrite(false); e.setDest(new File(savepath)); /* * * ant下的zip工具默认压缩编码为UTF-8编码&#xff0c; …

二维码的生成(可设置大小)以及插件下载地址

本文写的二维码生成是基于jQuery和jquery.qrcode.min.js插件的&#xff0c;本文将介绍两种方法和方式&#xff0c;仅供朋友选择和取舍。本文最下面附有插件的下载地址&#xff01; 方式1&#xff1a; 基于jquery.qrcode.min.js插件生成&#xff0c;代码如下&#xff1a; <h…

java+包装类,装箱和拆箱_Java包装类,装箱和拆箱详解

下面要给大家讲到的就是Java内置包装类方面的知识&#xff0c;这章主要会讲到Java包装类装箱和拆箱方面的知识&#xff0c;一起来了解一下。Java为每种基本数据类型分别设计了对应的类&#xff0c;这就被叫做是包装类(WrapperClasses)&#xff0c;当然&#xff0c;也有的地方叫…

AI换声,只需5秒音源,这个网络就能实时“克隆”你的声音

本文中&#xff0c;Google 团队提出了一种文本语音合成&#xff08;text to speech&#xff09;神经系统&#xff0c;能通过少量样本学习到多个不同说话者&#xff08;speaker&#xff09;的语音特征&#xff0c;并合成他们的讲话音频。此外&#xff0c;对于训练时网络没有接触…