資源簡介
圖像識別c++源碼,次二代開發(fā)!圖片識別率不是很高,僅用于學(xué)習(xí)!
代碼片段和文件信息
//?AntiVC_Demo.cpp?:?AntiVC.dll演示程序。
//
#include
#include?
#include?
int?main()
{
HINSTANCE?hInst?=?LoadLibraryA(“AntiVC.dll“);//載入AntiVC.dll
if?(!hInst)
{
std::cout<<“無法加載?AntiVC.Dll!“;
getchar();
return?0;
}
/*
AntiVC.dll導(dǎo)出函數(shù)說明:
int?LoadCdsFromBuffer(//成功返回當前識別庫文件索引,失敗返回-1
char[]?FileBuffer?//識別庫文件二進制數(shù)據(jù)
int?FileBufLen//識別庫文件數(shù)據(jù)尺寸
char[]?Password);//識別庫調(diào)用密碼
int?LoadCdsFromFile(//成功返回當前識別庫文件索引,失敗返回-1
char[]?FilePath,//識別庫文件所在路徑
char[]?Password);//識別庫文件所在路徑
-------以上兩個函數(shù)用于載入識別庫文件----------
bool?GetVcodeFromBuffer(??//能識別返回真,否則返回假
int?CdsFileIndex?//識別庫文件索引
char*?ImgBuffer??//驗證碼圖像二進制數(shù)據(jù)
int?ImgBufLen?//驗證碼圖像尺寸
char[]?Vcode);//返回的已識別驗證碼文本
bool?GetVcodeFromFile(?//能識別返回真,否則返回假
int?CdsFileIndex?//識別庫文件索引
char[]?FilePath??//驗證碼文件所在路徑
char[]?Vcode);???//返回的已識別驗證碼文本
-------以上兩個函數(shù)用于識別驗證碼----------
*/
//-----------LoadCdsFromFile------------
typedef?int?(CALLBACK*?LPLoadCds)(char[]char[]);
LPLoadCds?LoadCdsFromFile?=?(LPLoadCds)GetProcAddress(hInst?“LoadCdsFromFile“);
/*
//-----------LoadCdsFromBuffer------------
typedef?int?(CALLBACK*?LPLoadCds)(char[]intchar[]);
LPLoadCds?LoadCdsFromBuffer?=?(LPLoadCds)GetProcAddress(hInst?“LoadCdsFromBuffer“);
*/
int?index?=?LoadCdsFromFile?(“網(wǎng)易論壇.cds“,“thisisdemo“);//載入識別庫
if?(index?==?-1)//返回-1說明載入識別庫出錯
{
std::cout<<“載入識別庫出錯?!?
getchar();
return?0;
}
//-----------GetVcodeFromFile------------
//typedef?bool?(CALLBACK*?LPGetVcode)(intchar[]char[]);
//LPGetVcode?GetVcodeFromFile?=?(LPGetVcode)GetProcAddress(hInst?“GetVcodeFromFile“);
//-----------GetVcodeFromBuffer------------
typedef?bool?(CALLBACK*?LPGetVcode)(intchar*intchar[]);
LPGetVcode?GetVcodeFromBuffer?=?(LPGetVcode)GetProcAddress(hInst?“GetVcodeFromBuffer“);
char?result[5];//定義一個字符串以接收驗證碼,這里驗證碼字符數(shù)是4,所以取5.
HANDLE?pfile?=?CreateFile(“wy.JPG“GENERIC_READFILE_SHARE_READ0OPEN_EXISTING00);
if(pfile?==?INVALID_HANDLE_VALUE){
std::cout<<“文件打開失敗!“;
CloseHandle(pfile);
return?0;
}
unsigned?long?filesize?=?GetFileSize?(pfile?NULL);
char*?buffer?=?new?char[filesize];?
unsigned?long?readsize;
ReadFile(pfilebufferfilesize&readsizeNULL);
CloseHandle(pfile);
if(GetVcodeFromBuffer(indexbufferfilesizeresult))
std::cout<<“驗證碼識別成功:“< else
std::cout<<“驗證碼識別失??!“;
getchar();
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1566??2010-11-24?10:33??wy.JPG
?????文件????????953??2012-05-21?14:34??網(wǎng)易論壇.cds
?????文件??????47104??2011-12-08?10:33??AntiVC.dll
?????文件???????2745??2011-03-23?10:16??AntiVC_Demo.cpp
?????文件??????41984??2011-01-23?19:04??AntiVC_Demo.ncb
?????文件???????3461??2010-11-24?09:24??AntiVC_Demo.dsp
?????文件????????530??2010-11-24?09:34??AntiVC_Demo.dsw
?????文件??????48640??2011-01-23?19:04??AntiVC_Demo.opt
?????文件???????5225??2012-05-21?14:35??DLL接口說明.txt
-----------?---------??----------?-----??----
???????????????152208????????????????????9
評論
共有 條評論