opencv4 java投影
工程下载
https://download.csdn.net/download/qq_16596909/11505994
比较适合与验证码的处理,毕竟八邻域降噪不能消除比较大的噪点,为了尽量减少噪点对后续识别精度产生负面影响,
最好还是把文字拆分为单个的字符图像,然后再去识别,精度会更高一些
垂直投影和水平投影结合起来分割,可以做到截取最小的分辨率,减少干扰
垂直投影
private org.opencv.core.Mat projectionVerticality(org.opencv.core.Mat mat) {
org.opencv.core.Mat projectionMat = mat.clone();//曲线救国,获取同样一个mat
projectionMat.setTo(new org.opencv.core.Scalar(255));//然后再把颜色换成白色
Double[] dotList = new Double[mat.cols()];//创建一个list用于存储每一列的黑点数量
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.out.println(mat.dump());
int col = mat.cols();
int row = mat.rows();
for (int x = 0; x < col; x++) {
dotList[x] = 0.0;
for (int y = 0; y < row; y++) {
double binData = mat.get(y, x)[0];
if (binData == 0) {//黑色 dotList[x]++;
}
}
}
//然后生成投影图
for (int x = 0; x < mat.cols(); x++) {
for (int y = 0; y < mat.rows(); y++) {
if (x == 147) {
System.out.println("下一行将会出现错误");
}
if (y < dotList[x]) {
projectionMat.put(y, x, 0);
System.out.println(x + "列" + y + "行");
} } } return projectionMat;
}
水平投影
private org.opencv.core.Mat projectionHorizontal(org.opencv.core.Mat mat) {
org.opencv.core.Mat projectionMat = mat.clone();//曲线救国,获取同样一个mat
projectionMat.setTo(new org.opencv.core.Scalar(255));//然后再把颜色换成白色
Double[] dotList = new Double[mat.rows()];//创建一个list用于存储每一列的黑点数量
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
System.out.println(mat.dump());
int col = mat.cols();
int row = mat.rows();
for (int y = 0; y < row; y++) {
dotList[y] = 0.0;
for (int x = 0; x < col; x++) {
double binData = mat.get(y, x)[0];
if (binData == 0) {//黑色
dotList[y]++;
}
}
}
//然后生成投影图
for (int y = 0; y < mat.rows(); y++) {
for (int x = 0; x < mat.cols(); x++) {
try {
if (x < dotList[y]) {
projectionMat.put(y, x, 0);
}
} catch (Exception e) {
System.out.println("正在处理第:" + y + "行,第" + x + "列");
}
}
}
return projectionMat;
}
opencv4 java投影的更多相关文章
- opencv4 java 验证码噪点 8邻域降噪
工程下载地址https://download.csdn.net/download/qq_16596909/11503962 程序运行后,同样会把图片存放在以下路径 首先来看一下原图 二值化后,可以把这 ...
- OPENCV 图像缩放
工程下载地址 https://download.csdn.net/download/qq_16596909/11522434 opencv4 java netbeans开发,基于maven 可以按照倍 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- [原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java基于opencv实现图像数字识别(五)—投影法分割字符
Java基于opencv实现图像数字识别(五)-投影法分割字符 水平投影法 1.水平投影法就是先用一个数组统计出图像每行黑色像素点的个数(二值化的图像): 2.选出一个最优的阀值,根据比这个阀值大或小 ...
- Ubuntu16桌面版编译OpenCV4的java库和so库
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)
轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...
- 【Java EE 学习 48】【Hibernate学习第五天】【抓取策略】【二级缓存】【HQL】
一.抓取策略. 1.hibernate中提供了三种抓取策略. (1)连接抓取(Join Fetch):这种抓取方式是默认的抓取方式.使用这种抓取方式hibernate会在select中内连接的方式获取 ...
- 【Java EE 学习 36】【struts2】【struts2系统验证】【struts2 ognl值栈】【struts2 ongl标签】【struts2 UI标签】【struts2模型驱动和令牌机制】
一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的 ...
随机推荐
- JS 基本的介绍
JS中的注释 HTML的注释:<!—注释内容--> CSS注释:/* 注释 */ JavaScript的注释:// 或 /* 多行注释 */ 变量 1.变量的概念 变量是变化 ...
- Java基础拾遗(二) — 关于equals(),hashcode()和 ==
这里分别讲==和equals()的关系,以及equals()和hashcode()的关系 讲解之前,需要先明白对象的内容.对象的引用,基本类型,引用类型这几个概念,此处不做解释 一.==和equals ...
- Spring中AOP的实现
Spring中整合了AOP的功能,虽然有不足,没有专门做AOP框架的那么完美,但是用一用感觉还是不错的 一些概念: AOP 面向切面编程 aspect 切面/切面类(我个人认为一个真正被解耦的程序,切 ...
- Echarts——更改仪表盘方向和颜色
做小项目需要用到仪表盘,官方给出的颜色设置如下: 而我想要如下样式的: 最后,经过一番折腾算是搞成了如下样式效果: 要达到上面效果关键在于设置Echarts的如下两处js代码: 1.大小值要颠倒,因为 ...
- 服务器访问数据库表mysql
服务器的MySQL配置就不说了,直接说一些用到的基础命令 登陆 show databases; use 数据库: show tables; 执行sql即可: 一定要有分号 select * from ...
- 【学术篇】luogu1558&&poj2777 色板游戏
题目の传送门: luogu:https://www.luogu.org/problem/show?pid=1558 poj:http://poj.org/problem?id=2777 题目大意:给有 ...
- python3 使用aria2下载的一个脚本
import requests import time ariaurl="http://localhost:6800/jsonrpc" dlurl="http://xxx ...
- 2016.8.17上午纪中初中部NOIP普及组比赛
2016.8.17上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1335 本来觉得自己能考高分,但只得160分,并列第九.至少又挤 ...
- LUOGU P1967 货车运输(最大生成树+树剖+线段树)
传送门 解题思路 货车所走的路径一定是最大生成树上的路径,所以先跑一个最大生成树,之后就是求一条路径上的最小值,用树剖+线段树,注意图可能不连通.将边权下放到点权上,但x,y路径上的lca的答案不能算 ...
- echarts的使用——vue
在vue的项目开发中,数据的可视化可以用echarts来实现,具体用法如下: (1)安装echarts,进入项目目录,执行如下命令,安装echarts: npm install echarts (2) ...