如果没有把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. AutoIt自动化编程(4)【转】

    五.自动化操作轻松入门系列5 控件操作 然而,在真正实现自动化时仅靠上面的技术往往难以达到预期目的.下面开始进入最为重要的控件操作. 1.设置文本 在安装软件的过程中用户往往需要提供一些必需信息,比如 ...

  2. 【JZOJ3347】树的难题

    description analysis 比较麻烦树形\(DP\) 不过这个我还是不算很懂-- 下次要注意思考,不要怕麻烦 code #pragma GCC optimize("O3&quo ...

  3. IOS6 新特性之UIActivityViewController详解

    新的IOS6增加了一些新特性.因为应用需要,所以在国庆的几天里.研究了一下IOS6的说明文档,然后大概地总结了一下UIActivityViewController的用法与大家分享. 首先 从实际效果入 ...

  4. Bean容器的初始化

    Bean容器的初始化

  5. 表单下拉框select

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  6. 关于获取webview(窗口间关系)的方法

    1.获取指定页面ID的webview plus.webview.getWebviewById('为页面设置的id值'): 该方法主要用于首页底部导航切换到子页面时不执行子页面的函数,因为在设置导航的时 ...

  7. 2016 CCPC网络选拔赛 部分题解

    HDU 5832 - A water problem 题意:有两颗星球,一年的长度分别为37天和173天.问第n天时它们是否为新年的第一天. 思路:显然  n 同时被37和173整除时,两种历法都在新 ...

  8. enctype="multipart/form-data"的form传参

    1.jsp <li class="btns"><input id="btnImport" class="btn btn-primar ...

  9. springboot项目中进行并发测试

    一 利用工具包: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...

  10. Leetcode950. Reveal Cards In Increasing Order按递增顺序显示卡牌

    牌组中的每张卡牌都对应有一个唯一的整数.你可以按你想要的顺序对这套卡片进行排序. 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态). 现在,重复执行以下步骤,直到显示所有卡牌为止: 从牌组顶部抽一 ...