IOS身分証明書の識別(OCRソース)の詳細及び実例コード
IOS身分証の識別(OCRソース)の詳細
最近のプロジェクトは身分証明書で識別して、ギズブでデモトを検索しました。Googleでコードをいっぱい探しました。証明書の写真を識別できますが、全部包装しました。以下のコードは本人が直接測定して使えます。さらに知能の識別を探しています。興味があれば、加入してください。
ここでは二つのオープンソースライブラリを使いました。OpenCV、TesseractOCRiOS、二つの言語はchi_を包んでいます。sim、eng。身分証明書の識別の流れは主に階調化、しきい値の二値化、腐食、輪郭検出、身分証番号領域を取り出し、TesseractOCRは文字を識別する。
身分証明書識別の核心ソースコード:
最近のプロジェクトは身分証明書で識別して、ギズブでデモトを検索しました。Googleでコードをいっぱい探しました。証明書の写真を識別できますが、全部包装しました。以下のコードは本人が直接測定して使えます。さらに知能の識別を探しています。興味があれば、加入してください。
ここでは二つのオープンソースライブラリを使いました。OpenCV、TesseractOCRiOS、二つの言語はchi_を包んでいます。sim、eng。身分証明書の識別の流れは主に階調化、しきい値の二値化、腐食、輪郭検出、身分証番号領域を取り出し、TesseractOCRは文字を識別する。
身分証明書識別の核心ソースコード:
UIImage * image = [UIImage imageNamed:@"abc.png"];
// UIImage Matcv::Mat resultImage;
UIImageToMat(image, resultImage);
//
cvtColor(resultImage, resultImage, 6);
//
cv::threshold(resultImage, resultImage, 100, 255, CV_THRESH_BINARY);
// , ( )
cv::Mat erodeElement = getStructuringElement(cv::MORPH_RECT, cv::Size(140,140));
cv::erode(resultImage, resultImage, erodeElement);
// std::vector> contours;
//
cv::findContours(resultImage, contours, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cvPoint(0, 0));
//
std::vectorrects;cv::Rect numberRect = cv::Rect(0,0,0,0); std::vector>::const_iterator itContours = contours.begin();
for ( ; itContours != contours.end(); ++itContours) {
cv::Rect rect = cv::boundingRect(*itContours);
rects.push_back(rect);
NSLog(@" :x=%d,y=%d,width=%d,height%d",rect.x,rect.y,rect.width,rect.height);
// : ,
if (rect.width > numberRect.width && rect.width > rect.height * 5 && rect.height > 200 && rect.height < 300) {
numberRect = rect;
}
}
// , , 、
cv::Mat matImage;
UIImageToMat(image, matImage);
resultImage = matImage(numberRect);
cvtColor(resultImage, resultImage, cv::COLOR_BGR2GRAY);
cv::threshold(resultImage, resultImage, 80, 255, CV_THRESH_BINARY);
// Mat UIImage
UIImage *numberImage = MatToUIImage(resultImage);
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。