Java基于opencv实现图像数字识别(一)

最近分到了一个任务,要做数字识别,我分配到的任务是把数字一个个的分开;当时一脸懵逼,直接百度java如何分割图片中的数字,然后就百度到了用BufferedImage这个类进行操作;尝试着做了一下,做到灰度化,和二值化就做不下去了;然后几乎就没有啥java的资料了,最多的好像都是c++,惹不起、惹不起……

我也想尝试着用c++做一下,百度到了c++基于opencv来做图像识别的;但是要下vs啊,十几个g呢,我内存这么小,配置这么麻烦,而且vs各个版本又有自己的特色;百度了以下,java基于opencv来做图像识别,发现也很少,但是有资料啊,而且配置也很简单啊,能做到就做到哪,慢慢学;现在我已经做到切割图片了,用的是投影法,效果还可以。可以先看以下

我们来一步步实现,先从下载opencv、配置java环境、写一个测试用例开始;肯定比你想象中的要简单

一、下载opencv,我用的是windows系统,这个应该没啥区别吧,java跨平台的

直接百度搜索opencv,建议去opencv中文网站下载吧;我刚开始下载的时候,下到一大半的时候突然停了,就这样停了;明明中文网站啊,还需要梯子吗;算了,我还是翻墙吧,然后就下好了,一步步安装,就好了,没啥难的。安装好后,就长这样,我也没有配置环境;

二、配置java开发环境

也很简单,就是把F:\openCv\opencv\build\java这个目录下的一个jar添加到环境变量,然后看你是系统是多少位的,把相应目录下的文件拷贝到你的项目中

空项目大概就是这样

三、我们测试一下,就用opencv二值化处理一张图片

我们来看一下代码

public static void main(String[] args) {// 这个必须要写,不写报java.lang.UnsatisfiedLinkErrorSystem.loadLibrary(Core.NATIVE_LIBRARY_NAME);File imgFile = new File("C:/Users/admin/Desktop/open/test.png");String dest = "C:/Users/admin/Desktop/open";Mat src = Imgcodecs.imread(imgFile.toString(), Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);Mat dst = new Mat();Imgproc.adaptiveThreshold(src, dst, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY, 13, 5);Imgcodecs.imwrite(dest + "/AdaptiveThreshold" + imgFile.getName(), dst);}

我们来看一下效果图

Java基于opencv实现图像数字识别(一)相关推荐

  1. Java基于opencv实现图像数字识别(一),java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  2. 数字识别java开源_Java基于opencv实现图像数字识别(三)—灰度化和二值化

    Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...

  3. java图片降噪_Java基于opencv实现图像数字识别(四)—图像降噪

    Java基于opencv实现图像数字识别(四)-图像降噪 我们每一步的工作都是基于前一步的,我们先把我们前面的几个函数封装成一个工具类,以后我们所有的函数都基于这个工具类 这个工具类呢,就一个成员变量 ...

  4. Java基于opencv—矫正图像

    更多的时候,我们得到的图像不可能是正的,多少都会有一定的倾斜,就比如下面的 我们要做的就是把它们变成下面这样的 我们采用的是寻找轮廓的思路,来矫正图片:只要有明显的轮廓都可以采用这种思路 具体思路: ...

  5. 基于OpenCV 实现银行卡数字识别

    银行卡数字识别 下面展示一张银行卡的结果,左图为灰度图,右图为结果. 开始之前,我们先导入需要的库,再定义一个画图函数,方便后续展示.为了方便大家理解,全文只有这一个自定义函数,我尽量多分成几个步骤来 ...

  6. Python基于OpenCV的人脸表情识别系统[源码&部署教程]

    1.项目背景 人脸表情识别是模式识别中一个非常重要却十分复杂的课题.首先对计算机人脸表情识别技术的研究背景及发展历程作了简单回顾.然后对近期人脸表情识别的方法进行了分类综述.通过对各种识别方法的分析与 ...

  7. 基于Tesseract训练的数字识别研究

    征地档案数字识别研究与应用 1 永州市自然资源与规划勘测事务中心 湖南 永州425000 摘要:针对征地档案数据整理建库工作中界址点坐标电子数据缺失现象,当前主要通过人工识别档案资料并且将坐标数据抄录 ...

  8. 基于OpenCV平滑图像

    基于OpenCV平滑图像也就是图像模糊,本博文介绍使用OpenCV的不同函数通过线性滤波进行图像平滑. cv::blur cv::GaussianBlur (高斯模糊) cv::medianBlur ...

  9. 4.3【图像镜像】-------------基于Opencv实现-----图像的镜像变换

     [1]理论知识:         镜像变换又分为水平镜像和垂直镜像,水平镜像即将图像左半部分和右半部分以图像竖直中轴线为中心轴进行兑换,而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线为中 ...

最新文章

  1. Quartz使用示例总结
  2. 开发最前沿:项目案例实战之桥模式
  3. 全志h3linux移植教程,全志H3启动分析,移植主线UBOOT
  4. opencv3——ANN算法的使用
  5. python目标跟踪精度曲线图_Python+opencv3.4+Kalman滤波在视频中跟踪绘制运动目标,Pythonopencv34kalman,卡尔曼滤波,实现,物体,追踪,和,轨迹...
  6. think php f方法,修改ThinkPHP3.2的F方法
  7. leetcode612. 平面上的最近距离(SQL)
  8. Python笔记-使用U2自动登录某APP及watcher使用
  9. JDK的可视化工具系列 (四) JConsole、VisualVM
  10. mysql启动找不见socket
  11. JDBC批量插入数据优化,使用addBatch和executeBatch
  12. mysql5.7.11解压安装_mysql 5.7.11解压安装教程
  13. 如何计算像素当量_「轴承知识」如何通过静承载能力选择轴承
  14. plsql 存储过程 批量提交_浅谈PetShop之使用存储过程与PLSQL批量处理(附案例)
  15. 阿里云 socket 服务器配置
  16. 函数6:lambda 表达式
  17. 迅雷协议分析–多链接资源获取
  18. 安卓xml文件中设置动画匀速旋转无效?
  19. 最珍贵的角落-赞美之泉(音乐河2)
  20. 最近美团前端面试题目整理

热门文章

  1. Method Draw – 很好用的 SVG 在线编辑器
  2. Java笔记:抽象类和接口
  3. Uni-app 自定义浮层dialog
  4. 3.nc在PWN中的使用
  5. 火狗工房(注意哦,不是热狗)
  6. 【Unity Assetstore】上传插件
  7. 信息系统规划工具中的各种矩阵
  8. 一起talk C栗子吧(第一百六十七回:C语言实例--控制终端字符颜色)
  9. 什么是高防服务器?服务器被攻击了怎么办?
  10. 图文演示电脑如何恢复系统还原到出厂状态