资源简介
基于opencv+Tesseract-OCR的银行卡图片处理,智能识别银行卡号
代码片段和文件信息
package com.zmx.opencvtest;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.io.File;
import javax.imageio.ImageIO;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Rect;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
* Created by zhangwenchao on 2017/9/27.
*/
public class FirstOpenCVTest {
static {
// 注意程序运行的时候需要在VM option添加该行 指明opencv的dll文件所在路径
// -Djava.library.path=$PROJECT_DIR$\opencv\x64
System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // 载入opencv all库
}
public static void main(String[] args) throws InterruptedException {
/**
* 1. 读取原始图像转换为OpenCV的Mat数据格式
*/
Mat srcMat = Imgcodecs.imread(“E:/opencv/20170928170446795.jpg“); // 原始图像
/**
* 2. 强原始图像转化为灰度图像
*/
Mat grayMat = new Mat(); // 灰度图像
Imgproc.cvtColor(srcMat grayMat Imgproc.COLOR_RGB2GRAY);
BufferedImage grayImage = toBufferedImage(grayMat);
saveJpgImage(grayImage “E:/grayImage.jpg“);
System.out.println(“保存灰度图像!“);
/**
* 3、对灰度图像进行二值化处理
*/
Mat binaryMat = new Mat(grayMat.height() grayMat.width() CvType.CV_8UC1);
Imgproc.threshold(grayMat binaryMat 20 255 Imgproc.THRESH_BINARY);
BufferedImage binaryImage = toBufferedImage(binaryMat);
saveJpgImage(binaryImage “E:/binaryImage.jpg“);
System.out.println(“保存二值化图像!“);
/**
* 4、图像腐蚀---腐蚀后变得更加宽粗.便于识别--使用3*3的图片去腐蚀
*/
Mat destMat = new Mat(); // 腐蚀后的图像
Mat element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT new Size(3 3));
Imgproc.erode(binaryMat destMat element);
BufferedImage destImage = toBufferedImage(destMat);
saveJpgImage(destImage “E:/destImage.jpg“);
System.out.println(“保存腐蚀化后图像!“);
/**
* 5 图片切割
*/
// 获取截图的范围--从第一行开始遍历统计每一行的像素点值符合阈值的个数再根据个数判断该点是否为边界
// 判断该行的黑色像素点是否大于一定值(此处为150)大于则留下找到上边界下边界后立即停止
int a = 0 b = 0 state = 0;
for (int y = 0; y < destMat.height(); y++)// 行
{
int count = 0;
for (int x = 0; x < destMat.width(); x++) // 列
{
// 得到该行像素点的值
byte[] data = new byte[1];
destMat.get(y x data);
if (data[0] == 0)
count = count + 1;
}
if (state == 0)// 还未到有效行
{
if (count >= 150)// 找到了有效行
{// 有效行允许十个像素点的噪声
a = y;
state = 1;
}
} else if (state == 1) {
if (count <= 150)// 找到了有效行
{// 有效行允许十个像素点的噪声
b = y;
state = 2;
}
}
}
System.out.println(“过滤下界“ + Integer.toString(a));
System.out.println(“过滤上界“ + Integer.toString(b));
// 参数坐标X坐标Y截图宽度截图长度
Rect rect = new Rect(0 a destMat.width() b - a);
Mat resMat = new Mat(destMat rect);
BufferedImage resImage = toBufferedImage(resMat);
saveJpgImage(resImage “E:/resImage.jpg“);
System.out.println(“保存切割后图像!“);
/**
* 识别-
*/
/*
* try { Process pro = Runtime.getRuntime().exec(new Strin
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 251213 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客.html
文件 45476 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\0f000PiLlj5bkTw5OmCI46.jpg
文件 96102 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\20170928170446795
文件 89744 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\20170928170652905
文件 53233 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\20170928170720889
文件 57150 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\20170928170758858
文件 20054 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\20170928170831077
文件 5106 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\2_hy0835.jpg
文件 11810 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_daguairen.jpg
文件 2964 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_eternity1118_.jpg
文件 1644 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_foreverhot1019.jpg
文件 1683 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_hy0835.jpg
文件 14275 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_lmj623565791.jpg
文件 1575 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_lovemysea.jpg
文件 1575 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_mkflyfly.jpg
文件 4009 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_ocr13512721355.jpg
文件 7587 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_ocr_recognition.jpg
文件 2825 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_pretender05.jpg
文件 10721 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_qq_29672495.jpg
文件 2390 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_u013035197.jpg
文件 1575 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_wanglha.jpg
文件 12531 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_xingyun1992.jpg
文件 1575 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_yangbingzhou.jpg
文件 12688 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_zmx729618.jpg
文件 6907 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\3_zz110731.jpg
文件 1165 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\52b5334.js.下载
文件 32188 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\adClosefeedbackUpgrade.min.js(1).下载
文件 31759 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\adClosefeedbackUpgrade.min.js.下载
文件 49 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\adx(1).php
文件 49 2018-03-04 23:00 参考资料\Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别 - CSDN博客_files\adx(2).php
............此处省略169个文件信息
相关资源
- springboot+rabbitmq项目demo(亲测可正常运
- jxbrowser 所有版本通用的破解包
- 2017年-传智播客-张志君老师-SpringBoo
- Blob.js+Export2Excel.js
- 机会路由源代码+仿真工具(SCORP)
- POI中文帮助文档附带api手册.zip
- 2018双十一阿里供应链服务平台讲座
- 原银在线信贷平台概要设计说明书v
- office_word_api 开发文档
- sun.misc.Unsafe源码
- netty的视频90集
- Drool最新 中文文档
- mybatis3-api.chm
- 蚂蚁课堂每特学院第二期,高清不加
- poi 动态修改docx窗体域内容,并存为
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- reportdesign基于lodop的vue简单打印设计工
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- SpringBoot +vue 框架项目.zip
- 基于Servlet下的验证码功能的实现
- 用两个摄像头实现,双目标定,双目
- jdk-11中文api修订版.CHM
- 招商银行信用卡中心2018春招IT笔试数
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 2019年独家Kubernetes K8S与Jenkins的CI CD高
- 新闻管理系统前台和后台
评论
共有 条评论