资源简介

基于opencv+java的银行卡图片处理, 这是完整的eclipse 工程,导入项目、修改java文件中的3个地址即可用。 这个项目参考了 csdn 用户:茶饮月 的“Java学习记录--OpenCV使用教程” 而完成。

资源截图

代码片段和文件信息

package com.test;

import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;

import javax.imageio.ImageIO;

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;

public class BankCardTest {
public final static String openVCLibPath=“C:\\codeinfos\\ocr\\java_opencv\\opencv\\x64\\opencv_java320.dll“; 
public final static String imgPath=“C:\\codeinfos\\ocr\\java_opencv\\src\\com\\test\\timg.jpg“; 
public final static String savePath=“C:\\idetools\\ocrimg4\\“; 
static {
// System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// 注意程序运行的时候需要在VM option添加该行 指明opencv的dll文件所在路径
// -Djava.library.path=$PROJECT_DIR$\opencv\x64
// 或者直接加载
System.load(openVCLibPath);
}

public static void main(String[] args) throws Exception {
Mat srcMat = Imgcodecs.imread(imgPath);
Mat destMat = new Mat();
Imgproc.cvtColor(srcMat destMat Imgproc.COLOR_RGB2GRAY);// 转灰色
saveImage(mat2BufferedImage(destMat) “2“);

Mat binaryMat = new Mat(destMat.height() destMat.width() CvType.CV_8UC1);
Imgproc.threshold(destMat binaryMat 28 255 Imgproc.THRESH_BINARY);// 二值
saveImage(mat2BufferedImage(binaryMat) “3“);

Mat element = Imgproc.getStructuringElement(Imgproc.MORPH_RECT new Size(3 3));
Mat erodeMat = new Mat();
Imgproc.erode(binaryMat erodeMat element);// 3*3的图片去腐蚀
saveImage(mat2BufferedImage(erodeMat) “4“);

// for (int y = 0; y < erodeMat.height(); y++)
// {
// for (int x = 0; x < erodeMat.width(); x++)
// {
// //得到该行像素点的值
// double[] data = erodeMat.get(yx);
// for (int i1 = 0; i1 < data.length; i1++) {
// data[i1] = 255;//像素点都改为白色
// }
// erodeMat.put(yxdata);
// }
// }

// for (int y = 0; y < erodeMat.height(); y++) {
// for (int x = 0; x < erodeMat.width(); x++) {
// // 得到该行像素点的值
// double[] data = erodeMat.get(y x);
// for (int i1 = 0; i1 < data.length; i1++) {
// data[i1] = 255;// 像素点都改为白色
// }
// erodeMat.put(y x data);
// }
// }

Mat imgSrc = new Mat();
Imgproc.erode(binaryMat imgSrc element);
int a = 0;
int b = imgSrc.height();
int state = 0;
int imgN = 5;
do {
for (int y = 0; y < imgSrc.height(); y++) {
int count = 0;
for (int x = 0; x < imgSrc.width(); x++) {
// 得到该行像素点的值
byte[] data = new byte[1];
imgSrc.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 <= 100)// 找到了结束行
{// 有效行允许十个像素点的噪声
b = y;
state = 2;
break;
}
}
}
System.out.println(“过滤下界“ + Integer.toString(a));
System.out.println(“过滤

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        362  2017-12-22 13:04  java_opencv\.classpath

     文件        387  2017-12-22 12:36  java_opencv\.project

     文件        598  2017-12-22 12:36  java_opencv\.settings\org.eclipse.jdt.core.prefs

     文件       4681  2018-01-16 10:39  java_opencv\bin\com\test\BankCardTest.class

     文件      12163  2017-12-26 14:05  java_opencv\bin\com\test\GasNumTest.class

     文件      12495  2017-12-27 09:12  java_opencv\bin\com\test\GasNumTest2.class

     文件       4872  2017-12-22 15:30  java_opencv\bin\com\test\Test1.class

     文件       5045  2017-12-25 11:08  java_opencv\bin\com\test\Test2.class

     文件      11692  2017-12-25 16:34  java_opencv\bin\com\test\Test3.class

     文件      12151  2017-12-26 14:05  java_opencv\bin\com\test\Test4.class

     文件      17130  2018-01-16 10:37  java_opencv\bin\com\test\timg.jpg

     文件     368013  2017-12-22 12:55  java_opencv\opencv\opencv-320.jar

     文件   31758848  2017-12-22 12:55  java_opencv\opencv\x64\opencv_java320.dll

     文件   26176512  2017-12-22 12:55  java_opencv\opencv\x86\opencv_java320.dll

     文件       4838  2018-01-16 10:39  java_opencv\src\com\test\BankCardTest.java

     文件      17130  2018-01-16 10:37  java_opencv\src\com\test\timg.jpg

     目录          0  2018-01-16 10:41  java_opencv\bin\com\test

     目录          0  2018-01-16 10:42  java_opencv\src\com\test

     目录          0  2018-01-16 10:41  java_opencv\bin\com

     目录          0  2018-01-16 10:41  java_opencv\opencv\x64

     目录          0  2018-01-16 10:41  java_opencv\opencv\x86

     目录          0  2018-01-16 10:41  java_opencv\src\com

     目录          0  2018-01-16 10:41  java_opencv\.settings

     目录          0  2018-01-16 10:41  java_opencv\bin

     目录          0  2017-12-22 12:59  java_opencv\lib

     目录          0  2018-01-16 10:41  java_opencv\opencv

     目录          0  2018-01-16 10:41  java_opencv\src

     目录          0  2018-01-16 10:41  java_opencv

----------- ---------  ---------- -----  ----

             58406917                    28

............此处省略1个文件信息

评论

共有 条评论