如果没有把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. day06 tar命令使用,vim简单操作以及linux开机过程

    上节课复习: cat: 查看全部文件内容 head: 从头查看文件内容,默认为前10行 tail: tail -f //动态查看文件是否增加内容 >> 追加 > 覆盖 more: 百 ...

  2. filebeat+redis+logstash+elasticsearch+kibana搭建日志分析系统

    filebeat+redis+elk搭建日志分析系统 官网下载地址:https://www.elastic.co/downloads 1.下载安装filebeat wget https://artif ...

  3. 表单下拉框select

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

  4. IDEA中Git的使用(多人合作)

    首先我们要简单知道github跟Git的区别.git是版本控制工具, github是一个面向开源及私有软件项目的托管平台,也是程序员交流的地方. 接下来就开始讲怎么多人一起开发. 首先我们先拥有git ...

  5. PAT甲级——【牛客练习题100】

    题目描述 Given N rational numbers in the form "numerator/denominator", you are supposed to cal ...

  6. OS -- (python)文件和目录操作方法大全

    一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目 ...

  7. gatekeeper学习概述

    1.概述 该产品部署在网络隔离装置两端,以代理程序的身份,完成两侧设备连接维护,数据转发的功能.场景简化如图所示: 软件核心是一个基于Netty的网络应用程序,考虑到系统的可维可测性,集成了web化的 ...

  8. rsync命令集合

    rsync -avz rsync://logs@211.151.78.206/www_logs/2014/03/27/* /mnt/hgfs/iautoslogs/

  9. 用this 对方法的扩展

    *都是静态方法 this指向的是调用的object*

  10. ajax发送验证码

    $.ajax({     url:url,     type:"POST",     data:data,     dataType:"JSON",     s ...