svm problem fix, 3.1 support

fix #87, fix #88
v1.6alpha
liuruoze 10 years ago
parent a197f44b43
commit 0331a9c0d6

@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.31101.0
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "demo", "vcprojs\demo.vcxproj", "{FADCD7E1-8071-4F1C-8071-C469569C3B56}"
EndProject
@ -10,17 +10,27 @@ EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FADCD7E1-8071-4F1C-8071-C469569C3B56}.Debug|Win32.ActiveCfg = Debug|Win32
{FADCD7E1-8071-4F1C-8071-C469569C3B56}.Debug|Win32.Build.0 = Debug|Win32
{FADCD7E1-8071-4F1C-8071-C469569C3B56}.Debug|x64.ActiveCfg = Debug|x64
{FADCD7E1-8071-4F1C-8071-C469569C3B56}.Debug|x64.Build.0 = Debug|x64
{FADCD7E1-8071-4F1C-8071-C469569C3B56}.Release|Win32.ActiveCfg = Release|Win32
{FADCD7E1-8071-4F1C-8071-C469569C3B56}.Release|Win32.Build.0 = Release|Win32
{FADCD7E1-8071-4F1C-8071-C469569C3B56}.Release|x64.ActiveCfg = Release|x64
{FADCD7E1-8071-4F1C-8071-C469569C3B56}.Release|x64.Build.0 = Release|x64
{2791E339-04FB-44EF-9F92-C90131FE7772}.Debug|Win32.ActiveCfg = Debug|Win32
{2791E339-04FB-44EF-9F92-C90131FE7772}.Debug|Win32.Build.0 = Debug|Win32
{2791E339-04FB-44EF-9F92-C90131FE7772}.Debug|x64.ActiveCfg = Debug|x64
{2791E339-04FB-44EF-9F92-C90131FE7772}.Debug|x64.Build.0 = Debug|x64
{2791E339-04FB-44EF-9F92-C90131FE7772}.Release|Win32.ActiveCfg = Release|Win32
{2791E339-04FB-44EF-9F92-C90131FE7772}.Release|Win32.Build.0 = Release|Win32
{2791E339-04FB-44EF-9F92-C90131FE7772}.Release|x64.ActiveCfg = Release|x64
{2791E339-04FB-44EF-9F92-C90131FE7772}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

@ -12,11 +12,15 @@ EasyPR是一个中文的开源车牌识别系统其目标是成为一个简
本次更新是1.4版,主要改进在于几个方面:
1.支持opencv3.0注意这与2.x不兼容要想支持的话请下载1.3版本。
1.支持opencv3.0与3.1,注意,这与opencv2.x不兼容要想支持的话请下载1.3版本。
2.ANN训练开放。
3.代码优化。
3.修正了SVM训练异常的问题。
4.代码优化。
不知道怎么下载以前的版本的小伙伴可以在github或gitosc的"branch"里选择"tags",然后点击"v1.3",再然后点击"download zip"。当然如果直接git clone的话可以随时方便切换。
在后面的版本中计划做以下几点改善:

@ -1313,3 +1313,35 @@
总图片数:204张, 未识出图片:3张, 定位率:98.5294%
平均字符差距:0.681592个, 完全匹配数:141张, 完全匹配率:70.1493%
总时间:178秒, 平均执行时间:0.872549秒
2016-01-12 09:46:45
总图片数:204张, 未识出图片:5张, 定位率:97.549%
平均字符差距:0.688442个, 完全匹配数:141张, 完全匹配率:70.8543%
总时间:180秒, 平均执行时间:0.882353秒
2016-01-12 09:53:28
总图片数:204张, 未识出图片:57张, 定位率:72.0588%
平均字符差距:1.4898个, 完全匹配数:87张, 完全匹配率:59.1837%
总时间:187秒, 平均执行时间:0.916667秒
2016-01-12 10:00:05
总图片数:204张, 未识出图片:5张, 定位率:97.549%
平均字符差距:0.688442个, 完全匹配数:141张, 完全匹配率:70.8543%
总时间:181秒, 平均执行时间:0.887255秒
2016-01-12 10:11:33
总图片数:204张, 未识出图片:5张, 定位率:97.549%
平均字符差距:0.688442个, 完全匹配数:141张, 完全匹配率:70.8543%
总时间:179秒, 平均执行时间:0.877451秒
2016-01-12 10:25:30
总图片数:204张, 未识出图片:5张, 定位率:97.549%
平均字符差距:0.688442个, 完全匹配数:141张, 完全匹配率:70.8543%
总时间:170秒, 平均执行时间:0.833333秒
2016-01-12 10:37:31
总图片数:204张, 未识出图片:10张, 定位率:95.098%
平均字符差距:0.618557个, 完全匹配数:139张, 完全匹配率:71.6495%
总时间:172秒, 平均执行时间:0.843137秒
2016-01-12 11:27:17
总图片数:204张, 未识出图片:5张, 定位率:97.549%
平均字符差距:0.688442个, 完全匹配数:141张, 完全匹配率:70.8543%
总时间:174秒, 平均执行时间:0.852941秒
2016-01-12 11:30:49
总图片数:204张, 未识出图片:5张, 定位率:97.549%
平均字符差距:0.688442个, 完全匹配数:141张, 完全匹配率:70.8543%
总时间:207秒, 平均执行时间:1.01471秒

@ -45,7 +45,7 @@ static const char *kChars[] = {
/* 31 */
};
static const std::map<const char*, const char*> kCharsMap = {
static const std::map<std::string, std::string> kCharsMap = {
{"zh_cuan" , "´¨"}, {"zh_e" , "¶õ"}, {"zh_gan" , "¸Ó"},
{"zh_gan1" , "¸Ê"}, {"zh_gui" , "¹ó"}, {"zh_gui1" , "¹ð"},
{"zh_hei" , "ºÚ"}, {"zh_hu" , "»¦"}, {"zh_ji" , "¼½"},

@ -23,7 +23,7 @@ class CCharsRecognise {
~CCharsRecognise();
std::string charsRecognise(cv::Mat plate);
int charsRecognise(cv::Mat plate, std::string& plateLicense);
//! »ñµÃ³µÅÆÑÕÉ«
inline std::string getPlateColor(cv::Mat input) const {

@ -7,6 +7,8 @@
namespace easypr {
//int svmTrain(bool dividePrepared, bool trainPrepared);
class SvmTrain : public ITrain {
public:
typedef struct {

@ -24,7 +24,11 @@ std::pair<std::string, std::string> CharsIdentify::identify(cv::Mat input) {
return std::make_pair(kChars[index], kChars[index]);
} else {
const char* key = kChars[index];
return std::make_pair(key, kCharsMap.at(key));
std::string s = key;
//std::cout << s << std::endl;
std::string province = kCharsMap.at(s);
//std::cout << province << std::endl;
return std::make_pair(s, province);
}
}
}

@ -7,17 +7,22 @@ CCharsRecognise::CCharsRecognise() { m_charsSegment = new CCharsSegment(); }
CCharsRecognise::~CCharsRecognise() { SAFE_RELEASE(m_charsSegment); }
std::string CCharsRecognise::charsRecognise(Mat plate) {
int CCharsRecognise::charsRecognise(Mat plate, std::string& plateLicense) {
std::vector<Mat> matChars;
std::string license;
int result = m_charsSegment->charsSegment(plate, matChars);
if (result == 0) {
for (auto block : matChars) {
auto character = CharsIdentify::instance()->identify(block);
license.append(character.second);
plateLicense.append(character.second);
}
}
return license;
if (plateLicense.size() < 7) {
return -1;
}
return result;
}
}

@ -44,7 +44,7 @@ void getHistogramFeatures(const Mat& image, Mat& features) {
Mat grayImage;
cvtColor(image, grayImage, CV_RGB2GRAY);
// grayImage = histeq(grayImage);
//grayImage = histeq(grayImage);
Mat img_threshold;
threshold(grayImage, img_threshold, 0, 255,

@ -27,9 +27,13 @@ int CPlateRecognize::plateRecognize(Mat src,
std::string plateType = getPlateColor(plate);
//获取车牌号
std::string license = charsRecognise(plate);
std::string full_license = plateType + ":" + license;
licenseVec.push_back(full_license);
std::string plateIdentify = "";
int resultCR = charsRecognise(plate, plateIdentify);
if (resultCR == 0)
{
std::string license = plateType + ":" + plateIdentify;
licenseVec.push_back(license);
}
}
//完整识别过程到此结束

@ -21,7 +21,8 @@ void SvmTrain::train() {
svm_->setType(cv::ml::SVM::C_SVC);
svm_->setKernel(cv::ml::SVM::RBF);
svm_->setDegree(0.1);
svm_->setGamma(1);
// 1.4 bug fix: old 1.4 ver gamma is 1
svm_->setGamma(0.1);
svm_->setCoef0(0.1);
svm_->setC(1);
svm_->setNu(0.1);
@ -32,11 +33,11 @@ void SvmTrain::train() {
fprintf(stdout, ">> Training SVM model, please wait...\n");
long start = utils::getTimestamp();
svm_->trainAuto(train_data, 10, SVM::getDefaultGrid(SVM::C),
SVM::getDefaultGrid(SVM::GAMMA), SVM::getDefaultGrid(SVM::P),
SVM::getDefaultGrid(SVM::NU), SVM::getDefaultGrid(SVM::COEF),
SVM::getDefaultGrid(SVM::DEGREE), true);
//svm_->train(train_data);
//svm_->trainAuto(train_data, 10, SVM::getDefaultGrid(SVM::C),
// SVM::getDefaultGrid(SVM::GAMMA), SVM::getDefaultGrid(SVM::P),
// SVM::getDefaultGrid(SVM::NU), SVM::getDefaultGrid(SVM::COEF),
// SVM::getDefaultGrid(SVM::DEGREE), true);
svm_->train(train_data);
long end = utils::getTimestamp();
fprintf(stdout, ">> Training done. Time elapse: %ldms\n", end - start);
@ -49,7 +50,9 @@ void SvmTrain::train() {
}
void SvmTrain::test() {
svm_ = cv::ml::SVM::load<cv::ml::SVM>(svm_xml_);
// 1.4 bug fix: old 1.4 ver there is no null judge
if (NULL == svm_)
svm_ = cv::ml::SVM::load<cv::ml::SVM>(svm_xml_);
if (test_file_list_.empty()) {
this->prepare();
@ -70,9 +73,10 @@ void SvmTrain::test() {
}
cv::Mat feature;
getHistogramFeatures(image, feature);
feature.reshape(1, 1).convertTo(feature, CV_32FC1);
auto predict = static_cast<int>(svm_->predict(feature));
//std::cout << "predict: " << result << std::endl;
auto predict = int(svm_->predict(feature));
auto real = item.label;
if (predict == kForward && real == kForward) ptrue_rtrue++;
if (predict == kForward && real == kInverse) ptrue_rfalse++;

@ -65,7 +65,10 @@ int test_chars_recognise() {
cv::Mat src = cv::imread("resources/image/chars_recognise.jpg");
CCharsRecognise cr;
std::cout << "charsRecognise: " << cr.charsRecognise(src) << std::endl;
std::string plateLicense = "";
int result = cr.charsRecognise(src, plateLicense);
if (result == 0)
std::cout << "charsRecognise: " << plateLicense << std::endl;
return 0;
}
}

@ -387,6 +387,7 @@ int main(int argc, const char* argv[]) {
{
easypr::SvmTrain svm("tmp/svm", "tmp/svm.xml");
svm.train();
//easypr::svmTrain(true, false);
}
break;
case 4:
@ -401,16 +402,18 @@ int main(int argc, const char* argv[]) {
break;
case 6: {
// 开发团队;
// 暂时不接受应聘信息,谢谢!
std::cout << std::endl;
const char* recruitment[] = {
const char* recruitment[] = {
"我们EasyPR团队目前有一个5人左右的小组在进行EasyPR后续版本的开发"
"工作。",
"如果你对本项目感兴趣,并且愿意为开源贡献一份力量,我们很欢迎你的"
"加入。",
"目前招聘的主要人才是:车牌定位,图像识别,深度学习,网站建设相关"
"方面的牛人。",
"如果你觉得自己符合条件,请发邮件到地址(easypr_dev@163.com)"
",期待你的加入!",
"人数已满,暂时不接受应聘信息,谢谢!",
//"如果你对本项目感兴趣,并且愿意为开源贡献一份力量,我们很欢迎你的"
//"加入。",
//"目前招聘的主要人才是:车牌定位,图像识别,深度学习,网站建设相关"
//"方面的牛人。",
//"如果你觉得自己符合条件,请发邮件到地址(easypr_dev@163.com)"
//",期待你的加入!",
NULL};
easypr::Utils::print_str_lines(recruitment);
std::cout << std::endl;

@ -5,10 +5,18 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{FADCD7E1-8071-4F1C-8071-C469569C3B56}</ProjectGuid>
@ -22,6 +30,12 @@
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -29,26 +43,45 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)</OutDir>
<IntDir>$(SolutionDir)_build\demo\debug\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)</OutDir>
<IntDir>$(SolutionDir)_build\demo\release\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
@ -66,6 +99,23 @@
<AdditionalDependencies>opencv_world300d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>%OPENCV%\include;$(SolutionDir)include</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4819</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>%OPENCV%\x64\vc12\lib</AdditionalLibraryDirectories>
<AdditionalDependencies>opencv_world300d.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -87,6 +137,27 @@
<AdditionalDependencies>opencv_world300.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>C:\Users\Micooz\Documents\opencv3\build\include;$(SolutionDir)include</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4819</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>C:\Users\Micooz\Documents\opencv3\build\x86\vc12\lib</AdditionalLibraryDirectories>
<AdditionalDependencies>opencv_world300.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\test\main.cpp" />
</ItemGroup>

@ -6,10 +6,20 @@
<LocalDebuggerCommandArguments>
</LocalDebuggerCommandArguments>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerWorkingDirectory>$(SolutionDir)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerCommandArguments />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LocalDebuggerWorkingDirectory>$(SolutionDir)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerCommandArguments>
</LocalDebuggerCommandArguments>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LocalDebuggerWorkingDirectory>$(SolutionDir)</LocalDebuggerWorkingDirectory>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
<LocalDebuggerCommandArguments />
</PropertyGroup>
</Project>

@ -5,10 +5,18 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{2791E339-04FB-44EF-9F92-C90131FE7772}</ProjectGuid>
@ -21,6 +29,12 @@
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -28,26 +42,45 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v120</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)_build\</OutDir>
<IntDir>$(SolutionDir)_build\libeasypr\debug\</IntDir>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)_build\</OutDir>
<IntDir>$(SolutionDir)_build\libeasypr\release\</IntDir>
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetExt>.lib</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -61,6 +94,19 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>%OPENCV%\include;$(SolutionDir)include</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4819</DisableSpecificWarnings>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -79,6 +125,24 @@
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>C:\Users\Micooz\Documents\opencv3\build\include;$(SolutionDir)include</AdditionalIncludeDirectories>
<DisableSpecificWarnings>
</DisableSpecificWarnings>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\core\chars_identify.cpp" />
<ClCompile Include="..\src\core\chars_recognise.cpp" />

@ -43,6 +43,9 @@
<Filter Include="资源文件\model">
<UniqueIdentifier>{06c2b48a-ffbe-495c-babf-c16877785c4c}</UniqueIdentifier>
</Filter>
<Filter Include="源文件\experi">
<UniqueIdentifier>{94e5b7c3-7dad-4f9f-a036-25ff09d69868}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\core\chars_identify.cpp">

Loading…
Cancel
Save