資源簡(jiǎn)介
基于opencv+Tesseract-OCR的銀行卡圖片處理,智能識(shí)別銀行卡號(hào)
代碼片段和文件信息
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?{
//?注意程序運(yùn)行的時(shí)候需要在VM?option添加該行?指明opencv的dll文件所在路徑
//?-Djava.library.path=$PROJECT_DIR$\opencv\x64
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);?//?載入opencv?all庫(kù)
}
public?static?void?main(String[]?args)?throws?InterruptedException?{
/**
?*?1.?讀取原始圖像轉(zhuǎn)換為OpenCV的Mat數(shù)據(jù)格式
?*/
Mat?srcMat?=?Imgcodecs.imread(“E:/opencv/20170928170446795.jpg“);?//?原始圖像
/**
?*?2.?強(qiáng)原始圖像轉(zhuǎn)化為灰度圖像
?*/
Mat?grayMat?=?new?Mat();?//?灰度圖像
Imgproc.cvtColor(srcMat?grayMat?Imgproc.COLOR_RGB2GRAY);
BufferedImage?grayImage?=?toBufferedImage(grayMat);
saveJpgImage(grayImage?“E:/grayImage.jpg“);
System.out.println(“保存灰度圖像!“);
/**
?*?3、對(duì)灰度圖像進(jìn)行二值化處理
?*/
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、圖像腐蝕---腐蝕后變得更加寬粗.便于識(shí)別--使用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?圖片切割
?*/
//?獲取截圖的范圍--從第一行開(kāi)始遍歷統(tǒng)計(jì)每一行的像素點(diǎn)值符合閾值的個(gè)數(shù)再根據(jù)個(gè)數(shù)判斷該點(diǎn)是否為邊界
//?判斷該行的黑色像素點(diǎn)是否大于一定值(此處為150)大于則留下找到上邊界下邊界后立即停止
int?a?=?0?b?=?0?state?=?0;
for?(int?y?=?0;?y? {
int?count?=?0;
for?(int?x?=?0;?x? {
//?得到該行像素點(diǎn)的值
byte[]?data?=?new?byte[1];
destMat.get(y?x?data);
if?(data[0]?==?0)
count?=?count?+?1;
}
if?(state?==?0)//?還未到有效行
{
if?(count?>=?150)//?找到了有效行
{//?有效行允許十個(gè)像素點(diǎn)的噪聲
a?=?y;
state?=?1;
}
}?else?if?(state?==?1)?{
if?(count?<=?150)//?找到了有效行
{//?有效行允許十個(gè)像素點(diǎn)的噪聲
b?=?y;
state?=?2;
}
}
}
System.out.println(“過(guò)濾下界“?+?Integer.toString(a));
System.out.println(“過(guò)濾上界“?+?Integer.toString(b));
//?參數(shù)坐標(biāo)X坐標(biāo)Y截圖寬度截圖長(zhǎng)度
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(“保存切割后圖像!“);
/**
?*?識(shí)別-
?*/
/*
?*?try?{?Process?pro?=?Runtime.getRuntime().exec(new?Strin
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????251213??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客.html
?????文件??????45476??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\0f000PiLlj5bkTw5OmCI46.jpg
?????文件??????96102??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\20170928170446795
?????文件??????89744??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\20170928170652905
?????文件??????53233??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\20170928170720889
?????文件??????57150??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\20170928170758858
?????文件??????20054??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\20170928170831077
?????文件???????5106??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\2_hy0835.jpg
?????文件??????11810??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_daguairen.jpg
?????文件???????2964??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_eternity1118_.jpg
?????文件???????1644??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_foreverhot1019.jpg
?????文件???????1683??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_hy0835.jpg
?????文件??????14275??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_lmj623565791.jpg
?????文件???????1575??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_lovemysea.jpg
?????文件???????1575??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_mkflyfly.jpg
?????文件???????4009??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_ocr13512721355.jpg
?????文件???????7587??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_ocr_recognition.jpg
?????文件???????2825??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_pretender05.jpg
?????文件??????10721??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_qq_29672495.jpg
?????文件???????2390??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_u013035197.jpg
?????文件???????1575??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_wanglha.jpg
?????文件??????12531??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_xingyun1992.jpg
?????文件???????1575??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_yangbingzhou.jpg
?????文件??????12688??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_zmx729618.jpg
?????文件???????6907??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\3_zz110731.jpg
?????文件???????1165??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\52b5334.js.下載
?????文件??????32188??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\adClosefeedbackUpgrade.min.js(1).下載
?????文件??????31759??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\adClosefeedbackUpgrade.min.js.下載
?????文件?????????49??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\adx(1).php
?????文件?????????49??2018-03-04?23:00??參考資料\Java使用OpenCV和Tesseract-OCR實(shí)現(xiàn)銀行卡圖片處理與卡號(hào)識(shí)別?-?CSDN博客_files\adx(2).php
............此處省略169個(gè)文件信息
評(píng)論
共有 條評(píng)論