• 大小: 22.19MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-06-16
  • 语言: 其他
  • 标签: java  opencv  

资源简介

基于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个文件信息

评论

共有 条评论