Java学习记录--OpenCV使用教程
来源:互联网 发布:有没有家长控制软件 编辑:程序博客网 时间:2024/05/16 06:53
http://blog.csdn.net/u012706811/article/details/52779271
环境搭建:
下载openCV后,把build文件夹里面的Java拷贝到项目目录
主程序里面启动前加载该库
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
IDEA内这样配置
例图:
1.Mat与BufferedImage的转换
Mat类是OpenCV最基本的一个数据类型,它可以表示一个多维的多通道的数组。Mat常用来存储图像,包括单通道二维数组——灰度图,多通道二维数组——彩色图。
1.1 mat转BufferedImage
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
1.2 BufferedImage转mat
- 1
- 2
- 1
- 2
2.图片灰度化
就是把图片转换为黑白照
- 1
- 1
该函数把原srcMat转换为灰度图像放入grayMat中,自己再转换为BufferedImage显示即可.
3.二值化处理
也就是只留两个值,黑白
- 1
- 2
- 1
- 2
4.图像腐蚀
这里使用3*3的图片去腐蚀
- 1
- 2
- 1
- 2
腐蚀后变得更加宽,粗.便于识别
5.遍历,获取和修改像素值
二值图片,当成一个二维矩阵就可以了,双重循环,使用get方法获取像素点,使用put方法修改像素点
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
6.过滤和切割
过滤和切割要找到一个开始行或列,结束行或列,这就有一个简单的算法.该算法从第一行开始遍历,统计每一行的像素点值符合阈值的个数,再根据个数判断该点是否为边界.找到后过滤和切割自然就很简单了,直接创建个该范围的新的Mat对象.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
截取
- 1
- 2
- 3
- 1
- 2
- 3
过滤是从上到下,判断该行的黑色像素点是否大于一定值,大于则留下,找到上边界,下边界后立即停止.
7.识别
使用tesseract-ocr进行识别,效果还是很不错的.github地址
8.资料
后来发现一个很不错的网站,分享一下,里面有一些使用案例
http://www.w3ii.com/java_dip/default.html
阅读全文
0 0
- Java学习记录--OpenCV使用教程
- Java学习记录--OpenCV使用教程
- opencv学习记录20140305
- opencv学习记录
- ubuntu+opencv学习记录
- OpenCV学习记录
- opencv 学习记录
- Opencv 学习记录
- 学习opencv记录
- OpenCv使用记录
- OpenCV Java教程文档及深入学习图书
- git学习教程记录
- Opencv 学习笔记--错误记录
- openCV学习之错误记录
- qt+opencv学习进程记录
- openCV学习记录:滤镜:连环画
- openCV学习记录:图像修复
- Opencv学习之零碎记录
- pgAdmin能连接PostgreSQL,但是网站不能之解决
- 关于CPU的18个知识
- hpuoj【1033】出现次数最多的字母【统计元素】
- 工具------随机获取User-Agent
- SDUT 2140-拓扑排序
- Java学习记录--OpenCV使用教程
- 更改MySQL的默认事务隔离级别
- 机器学习--准备阶段
- Java异常分类与处理 -- JAVA 基础
- caffe (五)----------solver的配置
- 阿里科学家王刚、吴翰清同时入选MIT2017年度TR35 开创中国互联网企业先河
- MySQL 数据类型
- Entity FrameWork 一
- EasyStream系列10之directshow转rtmp