工程下载地址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. HashMap数据结构

    2.1 HashMap 2.1.1 HashMap介绍 先看看HashMap类头部的源码: public class HashMap<K,V> extends AbstractMap< ...

  2. JavaSE_10_IO流

    1.1 什么是IO 把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存的输出流. 1.2 IO的分类 输入 ...

  3. 洛谷P4550 【收集邮票】

    题目链接: 神仙题QAQ 题目分析: 概率期望题是不可能会的,一辈子都不可能会的QAQ 这个题也太仙了 首先明确一下题意里面我感觉没太说清楚的地方,这里是抽到第\(i\)次要\(i\)元钱,不是抽到第 ...

  4. MyEclipse使用总结——MyEclipse安装maven插件[转]

    打开 myeclipse, MyEclipse -->  Preferences -->Maven4MyEclipse 确定jdk是可用的 选择自己安装的maven: 点击Add选中我们的 ...

  5. FreeMarker 自定义 TemplateDirectiveModel(二)

    FreeMarker 是一个用 Java 语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker 与 Web 容器无关,即在 Web 运行时,它并不知道 Servlet 或 HTTP.它不 ...

  6. java面向对象特征 — 一句话概括

    java基础学习总结之基本特征,最开始学习的时候,是形而上的理解,用了3年多,再回头看,理解起来颇为顺理成章 语言学习大概就是这样一种规律,学习,不甚解,应用,应用,渐深入人心,回头一看,恍然一悟 最 ...

  7. java基础之完数判断

    完数: 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该 ...

  8. Mybatis Plus 入坑(含最新3.X配置)

    简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 使用它可以简化单表的操作, 节省开发时间, 国人 ...

  9. Anaconda如何配置多版本Python

    https://blog.csdn.net/guanmaoning/article/details/80031279

  10. 嘴巴题5 「BZOJ1864」[ZJOI2006] 三色二叉树

    1864: [Zjoi2006]三色二叉树 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1195 Solved: 882 [Submit][Status ...