java opencv 4.0.1安装配置
如果没有把dll扔到jdk会报错
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no opencv_java401 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:)
at java.lang.Runtime.loadLibrary0(Runtime.java:)
at java.lang.System.loadLibrary(System.java:)
at com.hs.jframe.Jframe.jButton5ActionPerformed(Jframe.java:)
at com.hs.jframe.Jframe.access$(Jframe.java:)
at com.hs.jframe.Jframe$.actionPerformed(Jframe.java:)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:)
at java.awt.Component.processMouseEvent(Component.java:)
at javax.swing.JComponent.processMouseEvent(JComponent.java:)
at java.awt.Component.processEvent(Component.java:)
at java.awt.Container.processEvent(Container.java:)
at java.awt.Component.dispatchEventImpl(Component.java:)
at java.awt.Container.dispatchEventImpl(Container.java:)
at java.awt.Component.dispatchEvent(Component.java:)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:)
at java.awt.Container.dispatchEventImpl(Container.java:)
at java.awt.Window.dispatchEventImpl(Window.java:)
at java.awt.Component.dispatchEvent(Component.java:)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:)
at java.awt.EventQueue.access$(EventQueue.java:)
at java.awt.EventQueue$.run(EventQueue.java:)
at java.awt.EventQueue$.run(EventQueue.java:)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:)
at java.awt.EventQueue$.run(EventQueue.java:)
at java.awt.EventQueue$.run(EventQueue.java:)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:)
首先引入依赖
<!-- https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/opencv -->
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>opencv</artifactId>
<version>4.0.-1.4.</version>
</dependency>
再去官网下载一些东东https://opencv.org/releases/
因为maven仓的版本 最高只有4.0.1所以,下载的时候,找到4.0.1下载

官网下载资源
然后运行,解压后会得到一些文件

然后把dll扔到jdk的bin文件夹下

这个路径具体看自己的实际情况

然后构建一下,看到有这个jar包就行了,

开始之前呢,需要先了解一下opencv的行列方向问题

一般图片都需要进行灰度化然后二值化,
参考下图



这样基本上也可以识别了,但是还是有一些噪点,最好还是去一下噪点
对于分辨率比较低的图片,噪点基本都是一两个像素
简单的办法就是计算黑色像素点周围的8个像素是不是全部白色,如果是那8个像素点的值加起来就是2040,就把这个点处理成白色,如果不是,那可能就不是噪点

效果还凑合




代码如下
//因为去了边框,所以,行列数,做减2处理,即不处理边框上的像素
for(int x=1;x<col-1;x++){
for(int y=1;y<row-1;y++){
double[] binDataList=target.get(y, x);
double binData=binDataList[0]; if(binData==0){//黑色
double[] x1list=target.get(y-1, x-1);
double[] x2list=target.get(y-1, x);
double[] x3list=target.get(y-1, x+1); double[] x4list=target.get(y, x-1);
double[] x6list=target.get(y, x+1); double[] x7list=target.get(y+1, x-1);
double[] x8list=target.get(y+1, x);
double[] x9list=target.get(y+1, x+1);
double x1=x1list[0];
double x2=x2list[0];
double x3=x3list[0];
double x4=x4list[0];
double x6=x6list[0];
double x7=x7list[0];
double x8=x8list[0];
double x9=x9list[0];
if(x1+x2+x3+x4+x6+x7+x8+x9>=2040){
System.out.println("坐标xy:"+x+","+y+"此点是噪点,抹除处理");
target.put(y, x, 255);//画一个白点
}
}
else{ }
} }
稍微复杂一点的有连通域计算面积办法
https://blog.csdn.net/marooon/article/details/81332487
java opencv 4.0.1安装配置的更多相关文章
- resin4.0.25 安装配置 及结合eclipse开发
resin4.0.25 安装配置 及结合eclipse开发 本文大部分内容是对官网的翻译,及自己配置后的一些体会. 一. 基于win ,resin基本安装1,安装jdk1.6或更高版本2,配置环境 ...
- JDK1.6.0+Tomcat6.0的安装配置
JDK1.6.0+Tomcat6.0的安装配置是如何进行的呢?我们按照下面几个步骤来: 1.安装JDK 这是进行JSP开发的重要一步,也是安装JSP引擎(Tomcat.Resin.Weblogic等) ...
- Java开发环境及工具安装配置
Java开发环境及工具安装配置 Windows JDK 下载地址 https://www.oracle.com/java/technologies/javase-downloads.html 安装配置 ...
- mysql 5.0.46安装配置
http://os.chinaunix.net/a2008/0801/986/000000986346.shtml RPM包和源码包存放位置 /usr/local/src 源码包编译安装位置(pref ...
- zabbix3.0 agent安装配置
zabbix3.0 agent安装配置wget http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.0-2.el6.x86 ...
- Tomcat7.0/8.0 详细安装配置图解,以及UTF-8编码配置
Tomcat7.0/8.0 详细安装配置图解,以及UTF-8编码配置 2017年01月24日 10:01:48 阅读数:51265 标签: tomcattomcat安装tomcat配置tomcat编码 ...
- hadoop3.0 alpha1 安装配置
1. 官网下载 wget http://apache.fayea.com/hadoop/common/hadoop-3.0.0-alpha1/hadoop-3.0.0-alpha1.tar.gz 2 ...
- Java学习笔记——Linux下安装配置tomcat
朝辞白帝彩云间,千里江陵一日还. 两岸猿声啼不住,轻舟已过万重山. ——早发白帝城 首先需要安装配置JDK,这里简单回顾下.Linux下用root身份在/opt/文件夹下创建jvm文件夹,然后使用ta ...
- Hadoop2.2.0分布式安装配置详解[2/3]
前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...
随机推荐
- Type.GetType(string.contains(','))
例如 Type type = Type.GetType("ACalCoreServiceLib.BaseService,ACalCoreServiceLib"); 里面的ACalC ...
- 【JZOJ3423】Vani和Cl2捉迷藏&【BZOJ1143】祭祀river
description vani和cl2在一片树林里捉迷藏-- 这片树林里有N座房子,M条有向道路,组成了一张有向无环图. 树林里的树非常茂密,足以遮挡视线,但是沿着道路望去,却是视野开阔.如果从房子 ...
- 【转载】objective-c强引用与弱引用
形象比喻蛮好玩的^_^ __weak 和 __strong 会出现在声明中 默认情况下,一个指针都会使用 __strong 属性,表明这是一个强引用.这意味着,只要引用存在,对象就不能被销毁 ...
- css---switch开关
html: <label><input class="mui-switch" type="checkbox"> 默认未选中</la ...
- 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap[转]
上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...
- SPSS应用之非参数检验
SPSS应用之非参数检验 统计学的假设检验可以分为参数检验和非参数检验,参数检验是根据一些假设条件推算而来,当这些假设条件无法满足的时候,参数检验的效能会大打折扣,甚至出现错误的结果,而非参数检验通常 ...
- JEECG-Boot 项目介绍——基于代码生成器的快速开发平台(Springboot前后端分离)
Jeecg-Boot 是一款基于代码生成器的智能开发平台!采用前后端分离架构:SpringBoot,Mybatis,Shiro,JWT,Vue&Ant Design.强大的代码生成器让前端和后 ...
- WebSocket实践
基本弄清楚了WebSocket的来龙去脉后,开始了实现WebSocket技术的探索. 看过一篇文章,测试了八种WebSocket框架性能,得以了解到实现WebSocket技术的框架有: Netty.U ...
- PAT甲级——A1076 Forwards on Weibo
Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...
- 【机器学习】机器学习入门01 - kNN算法
0. 写在前面 近日加入了一个机器学习的学习小组,每周按照学习计划学习一个机器学习的小专题.笔者恰好近来计划深入学习Python,刚刚熟悉了其基本的语法知识(主要是与C系语言的差别),决定以此作为对P ...