希望大家学会分享,可能你懂的别人不懂,让大家一起学习。
效果图:
(1)训练中
(2)训练结果
代码的实现:
首先你需要在工程下新建一个存放图片的文件夹,然后在此文件夹下再新建三个名为“0”,“1”,“2”的文件夹,为什么是0,1,2呢,因为代码是这样写的,具体的还是要你去看,去理解。如图:
上代码了(注:此代码是在别人的基础上进行修改的):
#include "stdafx.h"
#include <windows.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include "opencv2/core/core.hpp"
using namespace cv;
using namespace std;
//----------------------------------字符串之间的相互转换----------------------------------
char* WcharToChar(const wchar_t* wp)
{
char *m_char;
int len= WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),NULL,0,NULL,NULL);
m_char=new char[len+1];
WideCharToMultiByte(CP_ACP,0,wp,wcslen(wp),m_char,len,NULL,NULL);
m_char[len]='\0';
return m_char;
}
wchar_t* CharToWchar(const char* c)
{
wchar_t *m_wchar;
int len = MultiByteToWideChar(CP_ACP,0,c,strlen(c),NULL,0);
m_wchar=new wchar_t[len+1];
MultiByteToWideChar(CP_ACP,0,c,strlen(c),m_wchar,len);
m_wchar[len]='\0';
return m_wchar;
}
wchar_t* StringToWchar(const string& s)
{
const char* p=s.c_str();
return CharToWchar(p);
}
//----------------------------------------------------------------------------------------
int main()
{
const string fileform = "*.png";//文件格式
const string perfileReadPath = "charSamples"; //文件前置路径
const int sample_mun_perclass = 637;//训练字符每类数量 <