如果没有把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安装配置的更多相关文章

  1. resin4.0.25 安装配置 及结合eclipse开发

    resin4.0.25 安装配置 及结合eclipse开发 本文大部分内容是对官网的翻译,及自己配置后的一些体会. 一.  基于win  ,resin基本安装1,安装jdk1.6或更高版本2,配置环境 ...

  2. JDK1.6.0+Tomcat6.0的安装配置

    JDK1.6.0+Tomcat6.0的安装配置是如何进行的呢?我们按照下面几个步骤来: 1.安装JDK 这是进行JSP开发的重要一步,也是安装JSP引擎(Tomcat.Resin.Weblogic等) ...

  3. Java开发环境及工具安装配置

    Java开发环境及工具安装配置 Windows JDK 下载地址 https://www.oracle.com/java/technologies/javase-downloads.html 安装配置 ...

  4. mysql 5.0.46安装配置

    http://os.chinaunix.net/a2008/0801/986/000000986346.shtml RPM包和源码包存放位置 /usr/local/src 源码包编译安装位置(pref ...

  5. 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 ...

  6. Tomcat7.0/8.0 详细安装配置图解,以及UTF-8编码配置

    Tomcat7.0/8.0 详细安装配置图解,以及UTF-8编码配置 2017年01月24日 10:01:48 阅读数:51265 标签: tomcattomcat安装tomcat配置tomcat编码 ...

  7. hadoop3.0 alpha1 安装配置

    1. 官网下载 wget  http://apache.fayea.com/hadoop/common/hadoop-3.0.0-alpha1/hadoop-3.0.0-alpha1.tar.gz 2 ...

  8. Java学习笔记——Linux下安装配置tomcat

    朝辞白帝彩云间,千里江陵一日还. 两岸猿声啼不住,轻舟已过万重山. ——早发白帝城 首先需要安装配置JDK,这里简单回顾下.Linux下用root身份在/opt/文件夹下创建jvm文件夹,然后使用ta ...

  9. Hadoop2.2.0分布式安装配置详解[2/3]

    前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...

随机推荐

  1. shell脚本使用需要注意的地方

    shell脚本中,函数内部定义变量可以为局部变量和全局变量,局部变量使用local定义,全局变量不带local,全局变量可以在函数外部可见,如下: #!/bin/bash function calle ...

  2. c语言学习笔记 - 指针和字符串

    前面学习了字符串是一种字符数组,又知道了指针变量和数组的关系,这里来看一下指针和字符串的关系. #include <stdio.h> int main(void){ char str = ...

  3. Android基础控件ToggleButton和Switch开关按钮

    1.简介 ToggleButton和Switch都是开关按钮,只不过Switch要Android4.0之后才能使用! ToggleButton <!--checked 是否选择--> &l ...

  4. Linux查看温度

    step 1: centos $ sudo yum install lm_sensors ubuntu $ sudo apt-get install lm_sensors step2$ sudo se ...

  5. Python学习之while练习--九九乘法表

    效果如下: 实现代码; m = 1n = 1while(m<10): while(n<=m): print(n,"*",m,"=",m*n,end ...

  6. Js中获取时间 new date()的用法

    Js中获取时间 new date()的用法 获取时间: var myDate = new Date();//获取系统当前时间 myDate.getYear(); //获取当前年份(2位) myDate ...

  7. Store工作原理

  8. mv- Linux必学的60个命令

    1.作用 mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户.该命令如同DOS命令中的ren和move的组合. 2.格式 mv[options] 源文件或目录 ...

  9. 如何使用log4j记录日志

    1.下载jar包 http://logging.apache.org/log4j 2.将jar包加入项目 放在lib(没有就创建)下 对已经复制过来的jar包鼠标点击右键,选中BuildPath  - ...

  10. 高德地图定位不到 报错 location Error, ErrCode:7, errInfo:KEY错误 请到http://lbs.amap.com/api/android-location-sdk/abouterrorcode/查看错误码说明.

    出现该问题的可能是高德地图的配置不准确: 仔细配对一下 看sha1 是否是通过应用签名生成的  要区分发布版的sha1 跟调试版的sha1  是不相同的 (小编我第一次反这种错误的时候 是因为我把高得 ...