工程下载地址https://download.csdn.net/download/qq_16596909/11503962

程序运行后,同样会把图片存放在以下路径

首先来看一下原图

二值化后,可以把这些颜色都去掉

噪点还是非常多的,不太利于识别

所以还需要降噪

至于什么连通域 水波填充,网上没有opencv+java的案例

所以采用8邻域降噪

可以看到效果还可以,把单个像素的噪点都消除了

还有大块的噪点无法解决

这种,计算连通域然后再消除,应该没问题

不过目前还不会

看代码

首先需要去边框

private org.opencv.core.Mat removeBorder(org.opencv.core.Mat target) {
int row = target.rows();//获取行
int col = target.cols();//获取列数
for (int i = ; i < col; i++) {
target.put(, i, );//第一行
target.put(row - , i, );//最后一行
}
for (int i = ; i < row; i++) {
target.put(i, , );//第一列,左边框
target.put(i, col - , );//最后一列
}
return target;
}

然后8邻域去噪点

  private org.opencv.core.Mat removeNoisePixel(org.opencv.core.Mat target, double pNum) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
int col = target.cols();
int row = target.rows();
//因为去了边框,所以,行列数,做减2处理,即不处理边框上的像素
for (int x = ; x < col - ; x++) {
for (int y = ; y < row - ; y++) {
double[] binDataList = target.get(y, x);
double binData = binDataList[]; if (binData == ) {//黑色
double[] x1list = target.get(y - , x - );
double[] x2list = target.get(y - , x);
double[] x3list = target.get(y - , x + );
double[] x4list = target.get(y, x - );
double[] x6list = target.get(y, x + );
double[] x7list = target.get(y + , x - );
double[] x8list = target.get(y + , x);
double[] x9list = target.get(y + , x + );
double x1 = x1list[];
double x2 = x2list[];
double x3 = x3list[];
double x4 = x4list[];
double x6 = x6list[];
double x7 = x7list[];
double x8 = x8list[];
double x9 = x9list[];
if (x1 + x2 + x3 + x4 + x6 + x7 + x8 + x9 >= ) { target.put(y, x, );//画一个白点
}
}
}
}
return target;
}

opencv4 java 验证码噪点 8邻域降噪的更多相关文章

  1. Python图片验证码降噪 — 8邻域降噪

    简介 图片验证码识别的可以分为几个步骤,一般用 Pillow 库或 OpenCV 来实现,这几个过程是: 1.灰度处理&二值化 2.降噪 3.字符分割 4.标准化 5.识别 所谓降噪就是把不需 ...

  2. opencv4 java投影

    工程下载 https://download.csdn.net/download/qq_16596909/11505994 比较适合与验证码的处理,毕竟八邻域降噪不能消除比较大的噪点,为了尽量减少噪点对 ...

  3. Java 验证码、二维码

    Java 验证码.二维码 资源 需要:   jelly-core-1.7.0.GA.jar网站:   http://lychie.github.io/products.html将下载下来的 jelly ...

  4. springMVC+Java验证码完善注册功能

    这篇文章简单的写了一个java验证码,为之前写过的springMVC注册功能加上验证码,验证码的作用就不多说了,防止机器人程序恶意注册什么的.. 其中User.java,加上了password和cod ...

  5. java制作验证码(java验证码小程序)

    手动制作java的验证码 Web应用验证码的组成: (1)输入框 (2)显示验证码的图片 验证码的制作流程: 生成验证码的容器使用 j2ee的servlet 生成图片需要的类: (1) Buffere ...

  6. Java 验证码识别库 Tess4j 学习

    Java 验证码识别库 Tess4j 学习 [在用java的Jsoup做爬虫爬取数据时遇到了验证码识别的问题(基于maven),找了网上挺多的资料,发现Tess4j可以自动识别验证码,在这里简单记录下 ...

  7. JAVA 验证码生成(转)

    最近做了一下验证码的功能,网上找了一篇还不错,引用下:http://blog.csdn.net/ruixue0117/article/details/22829557 这篇文章非常好,但是web和js ...

  8. Java 验证码工具类

    package com.wuyu.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import ...

  9. java 验证码

    package lizikj.bigwheel.pcsystem.util;import javax.imageio.ImageIO; import java.awt.*; import java.a ...

随机推荐

  1. myeclipse14 破解教程

        myeclipse14 破解教程     注意:先不要打开myeclipse,破解完成之后再打开    Myeclipse-2014-GA-破解文件  链接: https://pan.baid ...

  2. 《DSP using MATLAB》Problem 8.3

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  3. windows server 文件夹和搜索选项被禁用了

    当我们需要调整 windows 文件夹相关的配置时,却发现“文件夹和搜索选项”被禁用了,下图是恢复正常的情况.被禁用时显示灰色,不能点击. 下面给出解决步骤: 打开“组策略”. 然后依次展开“用户配置 ...

  4. SVN 环境搭建

    安装配置 安装环境 #查看系统版本环境 [root@svn ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@svn ~]# u ...

  5. [转]Visual Studio 2010生成解决方案时,提示磁盘空间不足!

    最近几天,使用VS调试时总是出现提示:磁盘空间不足.我觉得可能有两种可能:    1.系统盘已被木马侵袭.历时4小时的全盘扫描没有病毒提示,只好删除了一些不必要的软件:    2.使用VS2010调试 ...

  6. [转]【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox

    反反复复考虑后,准备把这一章的切入点瞄准ListBox.并用了一个看起来有点别扭的标题“认识ListBox",许多人看到这里就不爱看了,即使是大学里用winform的学生也会说ListBox ...

  7. Java开源诊断工具 Arthas 发布v3.1.0

    Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可.此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性 ...

  8. phpqrcode.php 生成二维码图片用于推广

    <?php /* * PHP QR Code encoder * * This file contains MERGED version of PHP QR Code library. * It ...

  9. Django项目:CRM(客户关系管理系统)--60--50PerfectCRM实现CRM客户报名流程学生合同URL随机码

    # sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...

  10. git add命令后出现Another git process seems to be running in this repositor...错误提示

    问题原因 在控制台使用git命令操作时,使用了 git commit 进入了commit信息书写页面,大多数人因为不太熟悉vim的操作导致不知怎么结束编写,就进行了直接关闭控制台的操作,但是此时git ...