资源简介
利用tesseract_ocr实现对图片中汉字的识别,识别的准确率约为80%。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
//tesseract
#include “strngs.h“
#include “baseapi.h“
#include “time.h“
using namespace std;
using namespace cv;
#pragma comment(lib“libtesseract302d.lib“)
//using namespace std;
void character_area_cut(); //截取字幕区域
void thinImage(IplImage *srcIplImage *dst);
void img_dilate(IplImage *dilate);
string UTF8ToGB(const char* str);
void main()
{
cout<<“字幕识别中...\n“;
clock_t startfinish;
double totaltime;
start=clock();
character_area_cut();
//cvWaitKey();
IplImage *pSrc = cvLoadImage(“ROI.jpg“CV_LOAD_IMAGE_GRAYSCALE);
if (!pSrc)
{
cout << “读取字幕失败!“ << endl;
exit(0);
}
IplImage *pTemp = cvCreateImage(cvGetSize(pSrc)pSrc->depthpSrc->nChannels);
IplImage *pDst = cvCreateImage(cvGetSize(pSrc)pSrc->depthpSrc->nChannels);
//将原图像转换为二值图像
cvThreshold(pSrcpTemp2001CV_THRESH_BINARY);
//图像细化
thinImage(pTemppDst);
for (int i=0; iheight; ++i)
{
for (int j=0; jwidth; ++j)
{
if(i>=0&&i<=4)
CV_IMAGE_ELEM(pDstucharij)= 0;
if(i>=42&&i<=45)
CV_IMAGE_ELEM(pDstucharij)= 0;
if(CV_IMAGE_ELEM(pDstucharij)==1)
CV_IMAGE_ELEM(pDstucharij)= 255;
}
}
cvSaveImage(“thin_result.jpg“pDst);
//namedWindow(“src“CV_WINDOW_AUTOSIZE);
//namedWindow(“dst“CV_WINDOW_AUTOSIZE);
//cvShowImage(“src“pSrc);
//cvShowImage(“dst“pDst);
//waitKey(0);
IplImage *d1=cvLoadImage(“thin_result.jpg“0);
img_dilate(d1);
IplImage *ms=cvLoadImage(“Img_dilate.jpg“0);
IplImage *pa = cvCreateImage(cvGetSize(ms)ms->depthms->nChannels);
IplImage *pb = cvCreateImage(cvGetSize(ms)ms->depthms->nChannels);
cvThreshold(mspa1281CV_THRESH_BINARY);
thinImage(papb);
for (int i=0; iheight; ++i)
{
for (int j=0; jwidth; ++j)
{
if(CV_IMAGE_ELEM(pbucharij)==1)
CV_IMAGE_ELEM(pbucharij)= 255;
}
}
cvSaveImage(“thin_again.jpg“pb);
IplImage *d2=cvLoadImage(“thin_again.jpg“0);
img_dilate(d2);
char *strdir=“Sharp_pic2.jpg“;
tesseract::TessbaseAPI api;
api.Init(NULL“chi_sim“tesseract::OEM_TESSERACT_ONLY);
//api.SetPageSegMode(tesseract::PSM_AUTO);
STRING textout;
if(!api.ProcessPages(strdirNULL0&textout))
{
exit(0);
}
string ss;
ss=UTF8ToGB(textout.string());
cout<<“\n识别结果:“<
ofstream outfile(“result.txt“ios::ate);
if(!outfile)
{
cout<<“Can‘t Open.“;
exit(0);
}
outfile< outfile.close();
/*
string output;
ifstream infile;
infile.open(“result.txt“ios::in);
infile>>output;
cout< in
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 98959360 2015-10-30 16:07 Video_OCR\ipch\video_ocr-9d04db89\video_ocr-a48df226.ipch
文件 4908 2015-10-30 16:09 Video_OCR\Video_OCR\Debug\Video_OCR.Build.CppClean.log
文件 417 2015-10-30 16:09 Video_OCR\Video_OCR\Debug\Video_OCR.log
文件 16059 2015-10-30 15:05 Video_OCR\Video_OCR\Img_dilate.jpg
文件 1672192 2011-03-14 10:48 Video_OCR\Video_OCR\liblept168.dll
文件 444944 2011-03-14 10:48 Video_OCR\Video_OCR\liblept168.lib
文件 3352576 2012-12-25 16:06 Video_OCR\Video_OCR\liblept168d.dll
文件 446954 2011-03-14 10:45 Video_OCR\Video_OCR\liblept168d.lib
文件 1534976 2014-03-22 09:13 Video_OCR\Video_OCR\libtesseract302.dll
文件 113560 2014-03-22 09:13 Video_OCR\Video_OCR\libtesseract302.lib
文件 4393984 2014-03-22 09:17 Video_OCR\Video_OCR\libtesseract302d.dll
文件 113892 2014-03-22 09:17 Video_OCR\Video_OCR\libtesseract302d.lib
文件 10667 2015-10-30 16:09 Video_OCR\Video_OCR\ocr.cpp
文件 46 2015-10-30 15:05 Video_OCR\Video_OCR\result.txt
文件 20571 2015-10-30 15:05 Video_OCR\Video_OCR\ROI.jpg
文件 16741 2015-10-30 15:05 Video_OCR\Video_OCR\Sharp_pic2.jpg
文件 12807 2015-10-30 15:05 Video_OCR\Video_OCR\thin_again.jpg
文件 15200 2015-10-30 15:05 Video_OCR\Video_OCR\thin_result.jpg
文件 102952 2015-10-28 14:17 Video_OCR\Video_OCR\vid.jpg
文件 4138 2015-10-30 16:09 Video_OCR\Video_OCR\Video_OCR.vcxproj
文件 941 2015-10-29 09:43 Video_OCR\Video_OCR\Video_OCR.vcxproj.filters
文件 143 2015-10-29 09:26 Video_OCR\Video_OCR\Video_OCR.vcxproj.user
文件 66178 2015-10-28 14:26 Video_OCR\Video_OCR\z1.jpg
文件 86787 2015-10-28 14:17 Video_OCR\Video_OCR\z2.jpg
文件 64754 2015-10-28 14:22 Video_OCR\Video_OCR\z3.jpg
文件 39866368 2015-10-30 16:10 Video_OCR\Video_OCR.sdf
文件 894 2015-10-29 09:26 Video_OCR\Video_OCR.sln
..A..H. 15360 2015-10-30 16:09 Video_OCR\Video_OCR.suo
目录 0 2015-10-30 16:07 Video_OCR\ipch\video_ocr-9d04db89
目录 0 2015-10-30 16:09 Video_OCR\Video_OCR\Debug
............此处省略7个文件信息
- 上一篇:tesseract_ocr在vs2010下调用的全部资料
- 下一篇:图片马赛克检测
评论
共有 条评论