資源簡介
利用tesseract_ocr實(shí)現(xiàn)對(duì)圖片中漢字的識(shí)別,識(shí)別的準(zhǔn)確率約為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“l(fā)ibtesseract302d.lib“)?
//using?namespace?std;
void?character_area_cut();????????????????????????//截取字幕區(qū)域
void?thinImage(IplImage?*srcIplImage?*dst);????
void?img_dilate(IplImage?*dilate);
string?UTF8ToGB(const?char*?str);
void?main()
{
cout<<“字幕識(shí)別中...\n“;
clock_t?startfinish;
double?totaltime;
start=clock();
character_area_cut();
//cvWaitKey();
IplImage?*pSrc?=?cvLoadImage(“ROI.jpg“CV_LOAD_IMAGE_GRAYSCALE);??
????if?(!pSrc)??
????{??
????????cout?<“讀取字幕失敗!“?< exit(0);
????}??
????IplImage?*pTemp?=?cvCreateImage(cvGetSize(pSrc)pSrc->depthpSrc->nChannels);??
????IplImage?*pDst?=?cvCreateImage(cvGetSize(pSrc)pSrc->depthpSrc->nChannels);??
??????
????//將原圖像轉(zhuǎn)換為二值圖像??
????cvThreshold(pSrcpTemp2001CV_THRESH_BINARY);???
????//圖像細(xì)化??
????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識(shí)別結(jié)果:“<
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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???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個(gè)文件信息
評(píng)論
共有 條評(píng)論